ETH Price: $2,626.68 (-1.69%)
Gas: 2 Gwei

Token

PEPE2.0 (PEPE2)
 

Overview

Max Total Supply

420,690,000,000,000 PEPE2

Holders

12

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,602,226,038,855.199915772 PEPE2

Value
$0.00
0x60908c2d065a3c82ec54f3d51baa17a234ddfcc3
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
pepe2community

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-28
*/

/**
 *Submitted for verification at Etherscan.io on 2023-08-29
*/


/**
PEPE2.0
PEPE2
COMMUNITY: https://t.me/Pepe2community
WEB: https://pepe2community.com
**/



// SPDX-License-Identifier: MIT


pragma solidity 0.8.20;

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

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

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

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000000 * 10**_decimals;
    string private constant _name = unicode"PEPE2.0";
    string private constant _symbol = unicode"PEPE2";
    uint256 public _maxTxAmount = 12622700000000 * 10**_decimals;
    uint256 public _maxWalletSize = 21034500000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 12622700000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 12622700000000 * 10**_decimals;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            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 > 50000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

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

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


    function openTrading() 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;
    }

    receive() external payable {}

    function manualSwap(uint256 percentageToSwap) external {
    require(_msgSender() == _taxWallet);
    require(percentageToSwap > 5 && percentageToSwap <= 100);

    uint256 tokenBalance = balanceOf(address(this));
    uint256 tokensToSwap = (tokenBalance * percentageToSwap) / 100;

    if (tokensToSwap > 0) {
        swapTokensForEth(tokensToSwap);
    }

    uint256 ethBalance = address(this).balance;
    if (ethBalance > 0) {
        sendETHToFee(ethBalance);

        }
    }   
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentageToSwap","type":"uint256"}],"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":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600160065f6101000a81548160ff0219169083151502179055506014600755601e60085560026009556002600a556014600b556014600c556016600d555f600e556009600a6200005591906200061e565b650b7af38cb3006200006891906200066e565b600f556009600a6200007b91906200061e565b65132179e689006200008e91906200066e565b6010556009600a620000a191906200061e565b650b7af38cb300620000b491906200066e565b6011556009600a620000c791906200061e565b650b7af38cb300620000da91906200066e565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055503480156200011d575f80fd5b505f6200012f6200045e60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001db6200045e60201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200022b91906200061e565b66017e9d8602b4006200023f91906200066e565b60015f620002526200045e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002a46200046560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003cf6200045e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200042d91906200061e565b66017e9d8602b4006200044191906200066e565b604051620004509190620006c9565b60405180910390a3620006e4565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200051657808604811115620004ee57620004ed6200048c565b5b6001851615620004fe5780820291505b80810290506200050e85620004b9565b9450620004ce565b94509492505050565b5f8262000530576001905062000602565b816200053f575f905062000602565b8160018114620005585760028114620005635762000599565b600191505062000602565b60ff8411156200057857620005776200048c565b5b8360020a9150848211156200059257620005916200048c565b5b5062000602565b5060208310610133831016604e8410600b8410161715620005d35782820a905083811115620005cd57620005cc6200048c565b5b62000602565b620005e28484846001620004c5565b92509050818404811115620005fc57620005fb6200048c565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200062a8262000609565b9150620006378362000612565b9250620006667fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200051f565b905092915050565b5f6200067a8262000609565b9150620006878362000609565b9250828202620006978162000609565b91508282048414831517620006b157620006b06200048c565b5b5092915050565b620006c38162000609565b82525050565b5f602082019050620006de5f830184620006b8565b92915050565b612fd880620006f25f395ff3fe608060405260043610610117575f3560e01c80637d1db4a51161009f578063b70143c911610063578063b70143c91461038e578063bf474bed146103b6578063c876d0b9146103e0578063c9567bf91461040a578063dd62ed3e146104205761011e565b80637d1db4a5146102aa5780638da5cb5b146102d45780638f9a55c0146102fe57806395d89b4114610328578063a9059cbb146103525761011e565b806323b872dd116100e657806323b872dd146101dc578063313ce5671461021857806370a0823114610242578063715018a61461027e578063751039fc146102945761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b5061013661045c565b604051610143919061209f565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d9190612150565b610499565b60405161017f91906121a8565b60405180910390f35b348015610193575f80fd5b5061019c6104b6565b6040516101a991906121d0565b60405180910390f35b3480156101bd575f80fd5b506101c66104bc565b6040516101d391906121d0565b60405180910390f35b3480156101e7575f80fd5b5061020260048036038101906101fd91906121e9565b6104e2565b60405161020f91906121a8565b60405180910390f35b348015610223575f80fd5b5061022c6105b6565b6040516102399190612254565b60405180910390f35b34801561024d575f80fd5b506102686004803603810190610263919061226d565b6105be565b60405161027591906121d0565b60405180910390f35b348015610289575f80fd5b50610292610604565b005b34801561029f575f80fd5b506102a8610752565b005b3480156102b5575f80fd5b506102be6108a3565b6040516102cb91906121d0565b60405180910390f35b3480156102df575f80fd5b506102e86108a9565b6040516102f591906122a7565b60405180910390f35b348015610309575f80fd5b506103126108d0565b60405161031f91906121d0565b60405180910390f35b348015610333575f80fd5b5061033c6108d6565b604051610349919061209f565b60405180910390f35b34801561035d575f80fd5b5061037860048036038101906103739190612150565b610913565b60405161038591906121a8565b60405180910390f35b348015610399575f80fd5b506103b460048036038101906103af91906122c0565b610930565b005b3480156103c1575f80fd5b506103ca6109fe565b6040516103d791906121d0565b60405180910390f35b3480156103eb575f80fd5b506103f4610a04565b60405161040191906121a8565b60405180910390f35b348015610415575f80fd5b5061041e610a16565b005b34801561042b575f80fd5b50610446600480360381019061044191906122eb565b610f38565b60405161045391906121d0565b60405180910390f35b60606040518060400160405280600781526020017f50455045322e3000000000000000000000000000000000000000000000000000815250905090565b5f6104ac6104a5610fba565b8484610fc1565b6001905092915050565b60125481565b5f6009600a6104cb9190612485565b66017e9d8602b4006104dd91906124cf565b905090565b5f6104ee848484611184565b6105ab846104fa610fba565b6105a685604051806060016040528060288152602001612f7b6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61055d610fba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b009092919063ffffffff16565b610fc1565b600190509392505050565b5f6009905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61060c610fba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068f9061255a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61075a610fba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107dd9061255a565b60405180910390fd5b6009600a6107f49190612485565b66017e9d8602b40061080691906124cf565b600f819055506009600a61081a9190612485565b66017e9d8602b40061082c91906124cf565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61087a9190612485565b66017e9d8602b40061088c91906124cf565b60405161089991906121d0565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600581526020017f5045504532000000000000000000000000000000000000000000000000000000815250905090565b5f61092661091f610fba565b8484611184565b6001905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610971610fba565b73ffffffffffffffffffffffffffffffffffffffff1614610990575f80fd5b6005811180156109a1575060648111155b6109a9575f80fd5b5f6109b3306105be565b90505f606483836109c491906124cf565b6109ce91906125a5565b90505f8111156109e2576109e181611b62565b5b5f4790505f8111156109f8576109f781611dcd565b5b50505050565b60115481565b60065f9054906101000a900460ff1681565b610a1e610fba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa19061255a565b60405180910390fd5b60148054906101000a900460ff1615610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef9061261f565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b973060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610b809190612485565b66017e9d8602b400610b9291906124cf565b610fc1565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c259190612651565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccf9190612651565b6040518363ffffffff1660e01b8152600401610cec92919061267c565b6020604051808303815f875af1158015610d08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d2c9190612651565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610db3306105be565b5f80610dbd6108a9565b426040518863ffffffff1660e01b8152600401610ddf969594939291906126e5565b60606040518083038185885af1158015610dfb573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e209190612758565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ec09291906127a8565b6020604051808303815f875af1158015610edc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0091906127f9565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361102f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102690612894565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361109d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109490612922565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161117791906121d0565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e9906129b0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125790612a3e565b60405180910390fd5b5f81116112a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129990612acc565b60405180910390fd5b5f6112ab6108a9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561131957506112e96108a9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118505761135a606461134c600b54600e54116113395760075461133d565b6009545b85611e3690919063ffffffff16565b611ead90919063ffffffff16565b905060065f9054906101000a900460ff16156114e25760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561141a575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114e1574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061149e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149590612b80565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561158b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115de575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561169857600f54821115611628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161f90612be8565b60405180910390fd5b60105482611635856105be565b61163f9190612c06565b1115611680576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167790612c83565b60405180910390fd5b600e5f81548092919061169290612ca1565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561172057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611764576117616064611753600c54600e541161174057600854611744565b600a545b85611e3690919063ffffffff16565b611ead90919063ffffffff16565b90505b5f61176e306105be565b9050601460159054906101000a900460ff161580156117d9575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117f15750601460169054906101000a900460ff165b80156117fe575060115481115b801561180d5750600d54600e54115b1561184e5761182f61182a8461182584601254611ef6565b611ef6565b611b62565b5f47905066b1a2bc2ec5000081111561184c5761184b47611dcd565b5b505b505b5f81111561194f576118a88160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f0e90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161194691906121d0565b60405180910390a35b61199f8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f6b90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611a426119f68284611f6b90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f0e90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ae58486611f6b90919063ffffffff16565b604051611af291906121d0565b60405180910390a350505050565b5f838311158290611b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3e919061209f565b60405180910390fd5b505f8385611b559190612ce8565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611b9957611b98612d1b565b5b604051908082528060200260200182016040528015611bc75781602001602082028036833780820191505090505b50905030815f81518110611bde57611bdd612d48565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ca69190612651565b81600181518110611cba57611cb9612d48565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d203060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fc1565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611d82959493929190612e2c565b5f604051808303815f87803b158015611d99575f80fd5b505af1158015611dab573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611e32573d5f803e3d5ffd5b5050565b5f808303611e46575f9050611ea7565b5f8284611e5391906124cf565b9050828482611e6291906125a5565b14611ea2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9990612ef4565b60405180910390fd5b809150505b92915050565b5f611eee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fb4565b905092915050565b5f818311611f045782611f06565b815b905092915050565b5f808284611f1c9190612c06565b905083811015611f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5890612f5c565b60405180910390fd5b8091505092915050565b5f611fac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b00565b905092915050565b5f8083118290611ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff1919061209f565b60405180910390fd5b505f838561200891906125a5565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561204c578082015181840152602081019050612031565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61207182612015565b61207b818561201f565b935061208b81856020860161202f565b61209481612057565b840191505092915050565b5f6020820190508181035f8301526120b78184612067565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120ec826120c3565b9050919050565b6120fc816120e2565b8114612106575f80fd5b50565b5f81359050612117816120f3565b92915050565b5f819050919050565b61212f8161211d565b8114612139575f80fd5b50565b5f8135905061214a81612126565b92915050565b5f8060408385031215612166576121656120bf565b5b5f61217385828601612109565b92505060206121848582860161213c565b9150509250929050565b5f8115159050919050565b6121a28161218e565b82525050565b5f6020820190506121bb5f830184612199565b92915050565b6121ca8161211d565b82525050565b5f6020820190506121e35f8301846121c1565b92915050565b5f805f60608486031215612200576121ff6120bf565b5b5f61220d86828701612109565b935050602061221e86828701612109565b925050604061222f8682870161213c565b9150509250925092565b5f60ff82169050919050565b61224e81612239565b82525050565b5f6020820190506122675f830184612245565b92915050565b5f60208284031215612282576122816120bf565b5b5f61228f84828501612109565b91505092915050565b6122a1816120e2565b82525050565b5f6020820190506122ba5f830184612298565b92915050565b5f602082840312156122d5576122d46120bf565b5b5f6122e28482850161213c565b91505092915050565b5f8060408385031215612301576123006120bf565b5b5f61230e85828601612109565b925050602061231f85828601612109565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156123ab5780860481111561238757612386612329565b5b60018516156123965780820291505b80810290506123a485612356565b945061236b565b94509492505050565b5f826123c3576001905061247e565b816123d0575f905061247e565b81600181146123e657600281146123f05761241f565b600191505061247e565b60ff84111561240257612401612329565b5b8360020a91508482111561241957612418612329565b5b5061247e565b5060208310610133831016604e8410600b84101617156124545782820a90508381111561244f5761244e612329565b5b61247e565b6124618484846001612362565b9250905081840481111561247857612477612329565b5b81810290505b9392505050565b5f61248f8261211d565b915061249a83612239565b92506124c77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846123b4565b905092915050565b5f6124d98261211d565b91506124e48361211d565b92508282026124f28161211d565b9150828204841483151761250957612508612329565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61254460208361201f565b915061254f82612510565b602082019050919050565b5f6020820190508181035f83015261257181612538565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6125af8261211d565b91506125ba8361211d565b9250826125ca576125c9612578565b5b828204905092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61260960178361201f565b9150612614826125d5565b602082019050919050565b5f6020820190508181035f830152612636816125fd565b9050919050565b5f8151905061264b816120f3565b92915050565b5f60208284031215612666576126656120bf565b5b5f6126738482850161263d565b91505092915050565b5f60408201905061268f5f830185612298565b61269c6020830184612298565b9392505050565b5f819050919050565b5f819050919050565b5f6126cf6126ca6126c5846126a3565b6126ac565b61211d565b9050919050565b6126df816126b5565b82525050565b5f60c0820190506126f85f830189612298565b61270560208301886121c1565b61271260408301876126d6565b61271f60608301866126d6565b61272c6080830185612298565b61273960a08301846121c1565b979650505050505050565b5f8151905061275281612126565b92915050565b5f805f6060848603121561276f5761276e6120bf565b5b5f61277c86828701612744565b935050602061278d86828701612744565b925050604061279e86828701612744565b9150509250925092565b5f6040820190506127bb5f830185612298565b6127c860208301846121c1565b9392505050565b6127d88161218e565b81146127e2575f80fd5b50565b5f815190506127f3816127cf565b92915050565b5f6020828403121561280e5761280d6120bf565b5b5f61281b848285016127e5565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61287e60248361201f565b915061288982612824565b604082019050919050565b5f6020820190508181035f8301526128ab81612872565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61290c60228361201f565b9150612917826128b2565b604082019050919050565b5f6020820190508181035f83015261293981612900565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61299a60258361201f565b91506129a582612940565b604082019050919050565b5f6020820190508181035f8301526129c78161298e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a2860238361201f565b9150612a33826129ce565b604082019050919050565b5f6020820190508181035f830152612a5581612a1c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ab660298361201f565b9150612ac182612a5c565b604082019050919050565b5f6020820190508181035f830152612ae381612aaa565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612b6a60498361201f565b9150612b7582612aea565b606082019050919050565b5f6020820190508181035f830152612b9781612b5e565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612bd260198361201f565b9150612bdd82612b9e565b602082019050919050565b5f6020820190508181035f830152612bff81612bc6565b9050919050565b5f612c108261211d565b9150612c1b8361211d565b9250828201905080821115612c3357612c32612329565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c6d601a8361201f565b9150612c7882612c39565b602082019050919050565b5f6020820190508181035f830152612c9a81612c61565b9050919050565b5f612cab8261211d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cdd57612cdc612329565b5b600182019050919050565b5f612cf28261211d565b9150612cfd8361211d565b9250828203905081811115612d1557612d14612329565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612da7816120e2565b82525050565b5f612db88383612d9e565b60208301905092915050565b5f602082019050919050565b5f612dda82612d75565b612de48185612d7f565b9350612def83612d8f565b805f5b83811015612e1f578151612e068882612dad565b9750612e1183612dc4565b925050600181019050612df2565b5085935050505092915050565b5f60a082019050612e3f5f8301886121c1565b612e4c60208301876126d6565b8181036040830152612e5e8186612dd0565b9050612e6d6060830185612298565b612e7a60808301846121c1565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ede60218361201f565b9150612ee982612e84565b604082019050919050565b5f6020820190508181035f830152612f0b81612ed2565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612f46601b8361201f565b9150612f5182612f12565b602082019050919050565b5f6020820190508181035f830152612f7381612f3a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220944d508fb16495c6f9923fd2c6a8b5d78542d9b599e997266d2437267780de8764736f6c63430008140033

Deployed Bytecode

0x608060405260043610610117575f3560e01c80637d1db4a51161009f578063b70143c911610063578063b70143c91461038e578063bf474bed146103b6578063c876d0b9146103e0578063c9567bf91461040a578063dd62ed3e146104205761011e565b80637d1db4a5146102aa5780638da5cb5b146102d45780638f9a55c0146102fe57806395d89b4114610328578063a9059cbb146103525761011e565b806323b872dd116100e657806323b872dd146101dc578063313ce5671461021857806370a0823114610242578063715018a61461027e578063751039fc146102945761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b5061013661045c565b604051610143919061209f565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d9190612150565b610499565b60405161017f91906121a8565b60405180910390f35b348015610193575f80fd5b5061019c6104b6565b6040516101a991906121d0565b60405180910390f35b3480156101bd575f80fd5b506101c66104bc565b6040516101d391906121d0565b60405180910390f35b3480156101e7575f80fd5b5061020260048036038101906101fd91906121e9565b6104e2565b60405161020f91906121a8565b60405180910390f35b348015610223575f80fd5b5061022c6105b6565b6040516102399190612254565b60405180910390f35b34801561024d575f80fd5b506102686004803603810190610263919061226d565b6105be565b60405161027591906121d0565b60405180910390f35b348015610289575f80fd5b50610292610604565b005b34801561029f575f80fd5b506102a8610752565b005b3480156102b5575f80fd5b506102be6108a3565b6040516102cb91906121d0565b60405180910390f35b3480156102df575f80fd5b506102e86108a9565b6040516102f591906122a7565b60405180910390f35b348015610309575f80fd5b506103126108d0565b60405161031f91906121d0565b60405180910390f35b348015610333575f80fd5b5061033c6108d6565b604051610349919061209f565b60405180910390f35b34801561035d575f80fd5b5061037860048036038101906103739190612150565b610913565b60405161038591906121a8565b60405180910390f35b348015610399575f80fd5b506103b460048036038101906103af91906122c0565b610930565b005b3480156103c1575f80fd5b506103ca6109fe565b6040516103d791906121d0565b60405180910390f35b3480156103eb575f80fd5b506103f4610a04565b60405161040191906121a8565b60405180910390f35b348015610415575f80fd5b5061041e610a16565b005b34801561042b575f80fd5b50610446600480360381019061044191906122eb565b610f38565b60405161045391906121d0565b60405180910390f35b60606040518060400160405280600781526020017f50455045322e3000000000000000000000000000000000000000000000000000815250905090565b5f6104ac6104a5610fba565b8484610fc1565b6001905092915050565b60125481565b5f6009600a6104cb9190612485565b66017e9d8602b4006104dd91906124cf565b905090565b5f6104ee848484611184565b6105ab846104fa610fba565b6105a685604051806060016040528060288152602001612f7b6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61055d610fba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b009092919063ffffffff16565b610fc1565b600190509392505050565b5f6009905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61060c610fba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068f9061255a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61075a610fba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107dd9061255a565b60405180910390fd5b6009600a6107f49190612485565b66017e9d8602b40061080691906124cf565b600f819055506009600a61081a9190612485565b66017e9d8602b40061082c91906124cf565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61087a9190612485565b66017e9d8602b40061088c91906124cf565b60405161089991906121d0565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600581526020017f5045504532000000000000000000000000000000000000000000000000000000815250905090565b5f61092661091f610fba565b8484611184565b6001905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610971610fba565b73ffffffffffffffffffffffffffffffffffffffff1614610990575f80fd5b6005811180156109a1575060648111155b6109a9575f80fd5b5f6109b3306105be565b90505f606483836109c491906124cf565b6109ce91906125a5565b90505f8111156109e2576109e181611b62565b5b5f4790505f8111156109f8576109f781611dcd565b5b50505050565b60115481565b60065f9054906101000a900460ff1681565b610a1e610fba565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa19061255a565b60405180910390fd5b60148054906101000a900460ff1615610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef9061261f565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b973060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610b809190612485565b66017e9d8602b400610b9291906124cf565b610fc1565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c259190612651565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccf9190612651565b6040518363ffffffff1660e01b8152600401610cec92919061267c565b6020604051808303815f875af1158015610d08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d2c9190612651565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610db3306105be565b5f80610dbd6108a9565b426040518863ffffffff1660e01b8152600401610ddf969594939291906126e5565b60606040518083038185885af1158015610dfb573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e209190612758565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ec09291906127a8565b6020604051808303815f875af1158015610edc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0091906127f9565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361102f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102690612894565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361109d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109490612922565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161117791906121d0565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e9906129b0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125790612a3e565b60405180910390fd5b5f81116112a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129990612acc565b60405180910390fd5b5f6112ab6108a9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561131957506112e96108a9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118505761135a606461134c600b54600e54116113395760075461133d565b6009545b85611e3690919063ffffffff16565b611ead90919063ffffffff16565b905060065f9054906101000a900460ff16156114e25760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561141a575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114e1574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061149e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149590612b80565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561158b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115de575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561169857600f54821115611628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161f90612be8565b60405180910390fd5b60105482611635856105be565b61163f9190612c06565b1115611680576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167790612c83565b60405180910390fd5b600e5f81548092919061169290612ca1565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561172057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611764576117616064611753600c54600e541161174057600854611744565b600a545b85611e3690919063ffffffff16565b611ead90919063ffffffff16565b90505b5f61176e306105be565b9050601460159054906101000a900460ff161580156117d9575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117f15750601460169054906101000a900460ff165b80156117fe575060115481115b801561180d5750600d54600e54115b1561184e5761182f61182a8461182584601254611ef6565b611ef6565b611b62565b5f47905066b1a2bc2ec5000081111561184c5761184b47611dcd565b5b505b505b5f81111561194f576118a88160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f0e90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161194691906121d0565b60405180910390a35b61199f8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f6b90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611a426119f68284611f6b90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f0e90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ae58486611f6b90919063ffffffff16565b604051611af291906121d0565b60405180910390a350505050565b5f838311158290611b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3e919061209f565b60405180910390fd5b505f8385611b559190612ce8565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611b9957611b98612d1b565b5b604051908082528060200260200182016040528015611bc75781602001602082028036833780820191505090505b50905030815f81518110611bde57611bdd612d48565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ca69190612651565b81600181518110611cba57611cb9612d48565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d203060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fc1565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611d82959493929190612e2c565b5f604051808303815f87803b158015611d99575f80fd5b505af1158015611dab573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611e32573d5f803e3d5ffd5b5050565b5f808303611e46575f9050611ea7565b5f8284611e5391906124cf565b9050828482611e6291906125a5565b14611ea2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9990612ef4565b60405180910390fd5b809150505b92915050565b5f611eee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fb4565b905092915050565b5f818311611f045782611f06565b815b905092915050565b5f808284611f1c9190612c06565b905083811015611f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5890612f5c565b60405180910390fd5b8091505092915050565b5f611fac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b00565b905092915050565b5f8083118290611ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff1919061209f565b60405180910390fd5b505f838561200891906125a5565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561204c578082015181840152602081019050612031565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61207182612015565b61207b818561201f565b935061208b81856020860161202f565b61209481612057565b840191505092915050565b5f6020820190508181035f8301526120b78184612067565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120ec826120c3565b9050919050565b6120fc816120e2565b8114612106575f80fd5b50565b5f81359050612117816120f3565b92915050565b5f819050919050565b61212f8161211d565b8114612139575f80fd5b50565b5f8135905061214a81612126565b92915050565b5f8060408385031215612166576121656120bf565b5b5f61217385828601612109565b92505060206121848582860161213c565b9150509250929050565b5f8115159050919050565b6121a28161218e565b82525050565b5f6020820190506121bb5f830184612199565b92915050565b6121ca8161211d565b82525050565b5f6020820190506121e35f8301846121c1565b92915050565b5f805f60608486031215612200576121ff6120bf565b5b5f61220d86828701612109565b935050602061221e86828701612109565b925050604061222f8682870161213c565b9150509250925092565b5f60ff82169050919050565b61224e81612239565b82525050565b5f6020820190506122675f830184612245565b92915050565b5f60208284031215612282576122816120bf565b5b5f61228f84828501612109565b91505092915050565b6122a1816120e2565b82525050565b5f6020820190506122ba5f830184612298565b92915050565b5f602082840312156122d5576122d46120bf565b5b5f6122e28482850161213c565b91505092915050565b5f8060408385031215612301576123006120bf565b5b5f61230e85828601612109565b925050602061231f85828601612109565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156123ab5780860481111561238757612386612329565b5b60018516156123965780820291505b80810290506123a485612356565b945061236b565b94509492505050565b5f826123c3576001905061247e565b816123d0575f905061247e565b81600181146123e657600281146123f05761241f565b600191505061247e565b60ff84111561240257612401612329565b5b8360020a91508482111561241957612418612329565b5b5061247e565b5060208310610133831016604e8410600b84101617156124545782820a90508381111561244f5761244e612329565b5b61247e565b6124618484846001612362565b9250905081840481111561247857612477612329565b5b81810290505b9392505050565b5f61248f8261211d565b915061249a83612239565b92506124c77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846123b4565b905092915050565b5f6124d98261211d565b91506124e48361211d565b92508282026124f28161211d565b9150828204841483151761250957612508612329565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61254460208361201f565b915061254f82612510565b602082019050919050565b5f6020820190508181035f83015261257181612538565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6125af8261211d565b91506125ba8361211d565b9250826125ca576125c9612578565b5b828204905092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61260960178361201f565b9150612614826125d5565b602082019050919050565b5f6020820190508181035f830152612636816125fd565b9050919050565b5f8151905061264b816120f3565b92915050565b5f60208284031215612666576126656120bf565b5b5f6126738482850161263d565b91505092915050565b5f60408201905061268f5f830185612298565b61269c6020830184612298565b9392505050565b5f819050919050565b5f819050919050565b5f6126cf6126ca6126c5846126a3565b6126ac565b61211d565b9050919050565b6126df816126b5565b82525050565b5f60c0820190506126f85f830189612298565b61270560208301886121c1565b61271260408301876126d6565b61271f60608301866126d6565b61272c6080830185612298565b61273960a08301846121c1565b979650505050505050565b5f8151905061275281612126565b92915050565b5f805f6060848603121561276f5761276e6120bf565b5b5f61277c86828701612744565b935050602061278d86828701612744565b925050604061279e86828701612744565b9150509250925092565b5f6040820190506127bb5f830185612298565b6127c860208301846121c1565b9392505050565b6127d88161218e565b81146127e2575f80fd5b50565b5f815190506127f3816127cf565b92915050565b5f6020828403121561280e5761280d6120bf565b5b5f61281b848285016127e5565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61287e60248361201f565b915061288982612824565b604082019050919050565b5f6020820190508181035f8301526128ab81612872565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61290c60228361201f565b9150612917826128b2565b604082019050919050565b5f6020820190508181035f83015261293981612900565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61299a60258361201f565b91506129a582612940565b604082019050919050565b5f6020820190508181035f8301526129c78161298e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a2860238361201f565b9150612a33826129ce565b604082019050919050565b5f6020820190508181035f830152612a5581612a1c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ab660298361201f565b9150612ac182612a5c565b604082019050919050565b5f6020820190508181035f830152612ae381612aaa565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612b6a60498361201f565b9150612b7582612aea565b606082019050919050565b5f6020820190508181035f830152612b9781612b5e565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612bd260198361201f565b9150612bdd82612b9e565b602082019050919050565b5f6020820190508181035f830152612bff81612bc6565b9050919050565b5f612c108261211d565b9150612c1b8361211d565b9250828201905080821115612c3357612c32612329565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c6d601a8361201f565b9150612c7882612c39565b602082019050919050565b5f6020820190508181035f830152612c9a81612c61565b9050919050565b5f612cab8261211d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cdd57612cdc612329565b5b600182019050919050565b5f612cf28261211d565b9150612cfd8361211d565b9250828203905081811115612d1557612d14612329565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612da7816120e2565b82525050565b5f612db88383612d9e565b60208301905092915050565b5f602082019050919050565b5f612dda82612d75565b612de48185612d7f565b9350612def83612d8f565b805f5b83811015612e1f578151612e068882612dad565b9750612e1183612dc4565b925050600181019050612df2565b5085935050505092915050565b5f60a082019050612e3f5f8301886121c1565b612e4c60208301876126d6565b8181036040830152612e5e8186612dd0565b9050612e6d6060830185612298565b612e7a60808301846121c1565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ede60218361201f565b9150612ee982612e84565b604082019050919050565b5f6020820190508181035f830152612f0b81612ed2565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612f46601b8361201f565b9150612f5182612f12565b602082019050919050565b5f6020820190508181035f830152612f7381612f3a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220944d508fb16495c6f9923fd2c6a8b5d78542d9b599e997266d2437267780de8764736f6c63430008140033

Deployed Bytecode Sourcemap

3653:8181:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5621:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6454:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4890:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5898:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6623:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5807:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6001:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2734:148;;;;;;;;;;;;;:::i;:::-;;10308:196;;;;;;;;;;;;;:::i;:::-;;4683:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2520:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4750:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5712:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6128:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11330:498;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4819:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4049:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10614:671;;;;;;;;;;;;;:::i;:::-;;6303:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5621:83;5658:13;5691:5;;;;;;;;;;;;;;;;;5684:12;;5621:83;:::o;6454:161::-;6529:4;6546:39;6555:12;:10;:12::i;:::-;6569:7;6578:6;6546:8;:39::i;:::-;6603:4;6596:11;;6454:161;;;;:::o;4890:58::-;;;;:::o;5898:95::-;5951:7;4492:1;4553:2;:13;;;;:::i;:::-;4535:15;:31;;;;:::i;:::-;5971:14;;5898:95;:::o;6623:313::-;6721:4;6738:36;6748:6;6756:9;6767:6;6738:9;:36::i;:::-;6785:121;6794:6;6802:12;:10;:12::i;:::-;6816:89;6854:6;6816:89;;;;;;;;;;;;;;;;;:11;:19;6828:6;6816:19;;;;;;;;;;;;;;;:33;6836:12;:10;:12::i;:::-;6816:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6785:8;:121::i;:::-;6924:4;6917:11;;6623:313;;;;;:::o;5807:83::-;5848:5;4492:1;5866:16;;5807:83;:::o;6001:119::-;6067:7;6094:9;:18;6104:7;6094:18;;;;;;;;;;;;;;;;6087:25;;6001:119;;;:::o;2734:148::-;2657:12;:10;:12::i;:::-;2647:22;;:6;;;;;;;;;;:22;;;2639:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2841:1:::1;2804:40;;2825:6;::::0;::::1;;;;;;;;2804:40;;;;;;;;;;;;2872:1;2855:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2734:148::o:0;10308:196::-;2657:12;:10;:12::i;:::-;2647:22;;:6;;;;;;;;;;:22;;;2639:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4492:1:::1;4553:2;:13;;;;:::i;:::-;4535:15;:31;;;;:::i;:::-;10361:12;:22;;;;4492:1;4553:2;:13;;;;:::i;:::-;4535:15;:31;;;;:::i;:::-;10394:14;:22;;;;10448:5;10427:20;;:26;;;;;;;;;;;;;;;;;;10469:27;4492:1;4553:2;:13;;;;:::i;:::-;4535:15;:31;;;;:::i;:::-;10469:27;;;;;;:::i;:::-;;;;;;;;10308:196::o:0;4683:60::-;;;;:::o;2520:79::-;2558:7;2585:6;;;;;;;;;;;2578:13;;2520:79;:::o;4750:62::-;;;;:::o;5712:87::-;5751:13;5784:7;;;;;;;;;;;;;;;;;5777:14;;5712:87;:::o;6128:167::-;6206:4;6223:42;6233:12;:10;:12::i;:::-;6247:9;6258:6;6223:9;:42::i;:::-;6283:4;6276:11;;6128:167;;;;:::o;11330:498::-;11416:10;;;;;;;;;;;11400:26;;:12;:10;:12::i;:::-;:26;;;11392:35;;;;;;11461:1;11442:16;:20;:47;;;;;11486:3;11466:16;:23;;11442:47;11434:56;;;;;;11499:20;11522:24;11540:4;11522:9;:24::i;:::-;11499:47;;11553:20;11612:3;11592:16;11577:12;:31;;;;:::i;:::-;11576:39;;;;:::i;:::-;11553:62;;11643:1;11628:12;:16;11624:71;;;11657:30;11674:12;11657:16;:30::i;:::-;11624:71;11703:18;11724:21;11703:42;;11769:1;11756:10;:14;11752:69;;;11783:24;11796:10;11783:12;:24::i;:::-;11752:69;11385:443;;;11330:498;:::o;4819:64::-;;;;:::o;4049:39::-;;;;;;;;;;;;;:::o;10614:671::-;2657:12;:10;:12::i;:::-;2647:22;;:6;;;;;;;;;;:22;;;2639:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10678:11:::1;::::0;::::1;;;;;;;;10677:12;10669:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10764:42;10727:15;;:80;;;;;;;;;;;;;;;;;;10818:58;10835:4;10850:15;;;;;;;;;;;4492:1;4553:2;:13;;;;:::i;:::-;4535:15;:31;;;;:::i;:::-;10818:8;:58::i;:::-;10921:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10903:55;;;10967:4;10974:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10903:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10887:13;;:110;;;;;;;;;;;;;;;;;;11008:15;;;;;;;;;;;:31;;;11047:21;11078:4;11084:24;11102:4;11084:9;:24::i;:::-;11109:1;11111::::0;11113:7:::1;:5;:7::i;:::-;11121:15;11008:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11155:13;;;;;;;;;;;11148:29;;;11186:15;;;;;;;;;;;11204:14;11148:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11244:4;11230:11;;:18;;;;;;;;;;;;;;;;;;11273:4;11259:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;10614:671::o:0;6303:143::-;6384:7;6411:11;:18;6423:5;6411:18;;;;;;;;;;;;;;;:27;6430:7;6411:27;;;;;;;;;;;;;;;;6404:34;;6303:143;;;;:::o;275:98::-;328:7;355:10;348:17;;275:98;:::o;6944:335::-;7054:1;7037:19;;:5;:19;;;7029:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7135:1;7116:21;;:7;:21;;;7108:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7217:6;7187:11;:18;7199:5;7187:18;;;;;;;;;;;;;;;:27;7206:7;7187:27;;;;;;;;;;;;;;;:36;;;;7255:7;7239:32;;7248:5;7239:32;;;7264:6;7239:32;;;;;;:::i;:::-;;;;;;;;6944:335;;;:::o;7287:2414::-;7391:1;7375:18;;:4;:18;;;7367:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7468:1;7454:16;;:2;:16;;;7446:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7538:1;7529:6;:10;7521:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7596:17;7638:7;:5;:7::i;:::-;7630:15;;:4;:15;;;;:32;;;;;7655:7;:5;:7::i;:::-;7649:13;;:2;:13;;;;7630:32;7626:1719;;;7691:76;7763:3;7691:67;7713:15;;7703:9;;:25;7702:55;;7743:14;;7702:55;;;7730:12;;7702:55;7691:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7679:88;;7788:20;;;;;;;;;;;7784:508;;;7849:15;;;;;;;;;;;7835:30;;:2;:30;;;;:62;;;;;7883:13;;;;;;;;;;;7869:28;;:2;:28;;;;7835:62;7831:444;;;8033:12;7960:28;:39;7989:9;7960:39;;;;;;;;;;;;;;;;:85;7924:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8241:12;8199:28;:39;8228:9;8199:39;;;;;;;;;;;;;;;:54;;;;7831:444;7784:508;8320:13;;;;;;;;;;;8312:21;;:4;:21;;;:55;;;;;8351:15;;;;;;;;;;;8337:30;;:2;:30;;;;8312:55;:83;;;;;8373:18;:22;8392:2;8373:22;;;;;;;;;;;;;;;;;;;;;;;;;8371:24;8312:83;8308:313;;;8435:12;;8425:6;:22;;8417:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8530:14;;8520:6;8504:13;8514:2;8504:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8496:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8594:9;;:11;;;;;;;;;:::i;:::-;;;;;;8308:313;8646:13;;;;;;;;;;;8640:19;;:2;:19;;;:43;;;;;8678:4;8663:20;;:4;:20;;;;8640:43;8637:174;;;8716:79;8791:3;8716:70;8738:16;;8728:9;;:26;8727:58;;8770:15;;8727:58;;;8756:13;;8727:58;8716:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8704:91;;8637:174;8827:28;8858:24;8876:4;8858:9;:24::i;:::-;8827:55;;8902:6;;;;;;;;;;;8901:7;:32;;;;;8920:13;;;;;;;;;;;8912:21;;:2;:21;;;8901:32;:47;;;;;8937:11;;;;;;;;;;;8901:47;:89;;;;;8973:17;;8952:20;:38;8901:89;:121;;;;;9004:18;;8994:9;;:28;8901:121;8897:437;;;9043:67;9060:49;9064:6;9071:37;9075:20;9096:11;;9071:3;:37::i;:::-;9060:3;:49::i;:::-;9043:16;:67::i;:::-;9129:26;9158:21;9129:50;;9222:17;9201:18;:38;9198:121;;;9264:35;9277:21;9264:12;:35::i;:::-;9198:121;9024:310;8897:437;7664:1681;7626:1719;9370:1;9360:9;:11;9357:161;;;9410:39;9439:9;9410;:24;9428:4;9410:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9385:9;:24;9403:4;9385:24;;;;;;;;;;;;;;;:64;;;;9490:4;9467:39;;9476:4;9467:39;;;9496:9;9467:39;;;;;;:::i;:::-;;;;;;;;9357:161;9544:27;9564:6;9544:9;:15;9554:4;9544:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9528:9;:15;9538:4;9528:15;;;;;;;;;;;;;;;:43;;;;9596:40;9614:21;9625:9;9614:6;:10;;:21;;;;:::i;:::-;9596:9;:13;9606:2;9596:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9582:9;:13;9592:2;9582:13;;;;;;;;;;;;;;;:54;;;;9667:2;9652:41;;9661:4;9652:41;;;9671:21;9682:9;9671:6;:10;;:21;;;;:::i;:::-;9652:41;;;;;;:::i;:::-;;;;;;;;7356:2345;7287:2414;;;:::o;1412:190::-;1498:7;1531:1;1526;:6;;1534:12;1518:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1558:9;1574:1;1570;:5;;;;:::i;:::-;1558:17;;1593:1;1586:8;;;1412:190;;;;;:::o;9817:483::-;5239:4;5230:6;;:13;;;;;;;;;;;;;;;;;;9895:21:::1;9933:1;9919:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9895:40;;9964:4;9946;9951:1;9946:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9990:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9980:4;9985:1;9980:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10023:62;10040:4;10055:15;;;;;;;;;;;10073:11;10023:8;:62::i;:::-;10096:15;;;;;;;;;;;:66;;;10177:11;10203:1;10219:4;10246;10266:15;10096:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9884:416;5275:5:::0;5266:6;;:14;;;;;;;;;;;;;;;;;;9817:483;:::o;10512:92::-;10569:10;;;;;;;;;;;:19;;:27;10589:6;10569:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10512:92;:::o;1610:246::-;1668:7;1697:1;1692;:6;1688:47;;1722:1;1715:8;;;;1688:47;1745:9;1761:1;1757;:5;;;;:::i;:::-;1745:17;;1790:1;1785;1781;:5;;;;:::i;:::-;:10;1773:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1847:1;1840:8;;;1610:246;;;;;:::o;1864:132::-;1922:7;1949:39;1953:1;1956;1949:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1942:46;;1864:132;;;;:::o;9711:98::-;9768:7;9795:1;9793;:3;9792:9;;9800:1;9792:9;;;9798:1;9792:9;9785:16;;9711:98;;;;:::o;1081:179::-;1139:7;1159:9;1175:1;1171;:5;;;;:::i;:::-;1159:17;;1200:1;1195;:6;;1187:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1251:1;1244:8;;;1081:179;;;;:::o;1268:136::-;1326:7;1353:43;1357:1;1360;1353:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1346:50;;1268:136;;;;:::o;2004:189::-;2090:7;2122:1;2118;:5;2125:12;2110:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2149:9;2165:1;2161;:5;;;;:::i;:::-;2149:17;;2184:1;2177:8;;;2004:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:329::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:180::-;6403:77;6400:1;6393:88;6500:4;6497:1;6490:15;6524:4;6521:1;6514:15;6541:102;6583:8;6630:5;6627:1;6623:13;6602:34;;6541:102;;;:::o;6649:848::-;6710:5;6717:4;6741:6;6732:15;;6765:5;6756:14;;6779:712;6800:1;6790:8;6787:15;6779:712;;;6895:4;6890:3;6886:14;6880:4;6877:24;6874:50;;;6904:18;;:::i;:::-;6874:50;6954:1;6944:8;6940:16;6937:451;;;7369:4;7362:5;7358:16;7349:25;;6937:451;7419:4;7413;7409:15;7401:23;;7449:32;7472:8;7449:32;:::i;:::-;7437:44;;6779:712;;;6649:848;;;;;;;:::o;7503:1073::-;7557:5;7748:8;7738:40;;7769:1;7760:10;;7771:5;;7738:40;7797:4;7787:36;;7814:1;7805:10;;7816:5;;7787:36;7883:4;7931:1;7926:27;;;;7967:1;7962:191;;;;7876:277;;7926:27;7944:1;7935:10;;7946:5;;;7962:191;8007:3;7997:8;7994:17;7991:43;;;8014:18;;:::i;:::-;7991:43;8063:8;8060:1;8056:16;8047:25;;8098:3;8091:5;8088:14;8085:40;;;8105:18;;:::i;:::-;8085:40;8138:5;;;7876:277;;8262:2;8252:8;8249:16;8243:3;8237:4;8234:13;8230:36;8212:2;8202:8;8199:16;8194:2;8188:4;8185:12;8181:35;8165:111;8162:246;;;8318:8;8312:4;8308:19;8299:28;;8353:3;8346:5;8343:14;8340:40;;;8360:18;;:::i;:::-;8340:40;8393:5;;8162:246;8433:42;8471:3;8461:8;8455:4;8452:1;8433:42;:::i;:::-;8418:57;;;;8507:4;8502:3;8498:14;8491:5;8488:25;8485:51;;;8516:18;;:::i;:::-;8485:51;8565:4;8558:5;8554:16;8545:25;;7503:1073;;;;;;:::o;8582:281::-;8640:5;8664:23;8682:4;8664:23;:::i;:::-;8656:31;;8708:25;8724:8;8708:25;:::i;:::-;8696:37;;8752:104;8789:66;8779:8;8773:4;8752:104;:::i;:::-;8743:113;;8582:281;;;;:::o;8869:410::-;8909:7;8932:20;8950:1;8932:20;:::i;:::-;8927:25;;8966:20;8984:1;8966:20;:::i;:::-;8961:25;;9021:1;9018;9014:9;9043:30;9061:11;9043:30;:::i;:::-;9032:41;;9222:1;9213:7;9209:15;9206:1;9203:22;9183:1;9176:9;9156:83;9133:139;;9252:18;;:::i;:::-;9133:139;8917:362;8869:410;;;;:::o;9285:182::-;9425:34;9421:1;9413:6;9409:14;9402:58;9285:182;:::o;9473:366::-;9615:3;9636:67;9700:2;9695:3;9636:67;:::i;:::-;9629:74;;9712:93;9801:3;9712:93;:::i;:::-;9830:2;9825:3;9821:12;9814:19;;9473:366;;;:::o;9845:419::-;10011:4;10049:2;10038:9;10034:18;10026:26;;10098:9;10092:4;10088:20;10084:1;10073:9;10069:17;10062:47;10126:131;10252:4;10126:131;:::i;:::-;10118:139;;9845:419;;;:::o;10270:180::-;10318:77;10315:1;10308:88;10415:4;10412:1;10405:15;10439:4;10436:1;10429:15;10456:185;10496:1;10513:20;10531:1;10513:20;:::i;:::-;10508:25;;10547:20;10565:1;10547:20;:::i;:::-;10542:25;;10586:1;10576:35;;10591:18;;:::i;:::-;10576:35;10633:1;10630;10626:9;10621:14;;10456:185;;;;:::o;10647:173::-;10787:25;10783:1;10775:6;10771:14;10764:49;10647:173;:::o;10826:366::-;10968:3;10989:67;11053:2;11048:3;10989:67;:::i;:::-;10982:74;;11065:93;11154:3;11065:93;:::i;:::-;11183:2;11178:3;11174:12;11167:19;;10826:366;;;:::o;11198:419::-;11364:4;11402:2;11391:9;11387:18;11379:26;;11451:9;11445:4;11441:20;11437:1;11426:9;11422:17;11415:47;11479:131;11605:4;11479:131;:::i;:::-;11471:139;;11198:419;;;:::o;11623:143::-;11680:5;11711:6;11705:13;11696:22;;11727:33;11754:5;11727:33;:::i;:::-;11623:143;;;;:::o;11772:351::-;11842:6;11891:2;11879:9;11870:7;11866:23;11862:32;11859:119;;;11897:79;;:::i;:::-;11859:119;12017:1;12042:64;12098:7;12089:6;12078:9;12074:22;12042:64;:::i;:::-;12032:74;;11988:128;11772:351;;;;:::o;12129:332::-;12250:4;12288:2;12277:9;12273:18;12265:26;;12301:71;12369:1;12358:9;12354:17;12345:6;12301:71;:::i;:::-;12382:72;12450:2;12439:9;12435:18;12426:6;12382:72;:::i;:::-;12129:332;;;;;:::o;12467:85::-;12512:7;12541:5;12530:16;;12467:85;;;:::o;12558:60::-;12586:3;12607:5;12600:12;;12558:60;;;:::o;12624:158::-;12682:9;12715:61;12733:42;12742:32;12768:5;12742:32;:::i;:::-;12733:42;:::i;:::-;12715:61;:::i;:::-;12702:74;;12624:158;;;:::o;12788:147::-;12883:45;12922:5;12883:45;:::i;:::-;12878:3;12871:58;12788:147;;:::o;12941:807::-;13190:4;13228:3;13217:9;13213:19;13205:27;;13242:71;13310:1;13299:9;13295:17;13286:6;13242:71;:::i;:::-;13323:72;13391:2;13380:9;13376:18;13367:6;13323:72;:::i;:::-;13405:80;13481:2;13470:9;13466:18;13457:6;13405:80;:::i;:::-;13495;13571:2;13560:9;13556:18;13547:6;13495:80;:::i;:::-;13585:73;13653:3;13642:9;13638:19;13629:6;13585:73;:::i;:::-;13668;13736:3;13725:9;13721:19;13712:6;13668:73;:::i;:::-;12941:807;;;;;;;;;:::o;13754:143::-;13811:5;13842:6;13836:13;13827:22;;13858:33;13885:5;13858:33;:::i;:::-;13754:143;;;;:::o;13903:663::-;13991:6;13999;14007;14056:2;14044:9;14035:7;14031:23;14027:32;14024:119;;;14062:79;;:::i;:::-;14024:119;14182:1;14207:64;14263:7;14254:6;14243:9;14239:22;14207:64;:::i;:::-;14197:74;;14153:128;14320:2;14346:64;14402:7;14393:6;14382:9;14378:22;14346:64;:::i;:::-;14336:74;;14291:129;14459:2;14485:64;14541:7;14532:6;14521:9;14517:22;14485:64;:::i;:::-;14475:74;;14430:129;13903:663;;;;;:::o;14572:332::-;14693:4;14731:2;14720:9;14716:18;14708:26;;14744:71;14812:1;14801:9;14797:17;14788:6;14744:71;:::i;:::-;14825:72;14893:2;14882:9;14878:18;14869:6;14825:72;:::i;:::-;14572:332;;;;;:::o;14910:116::-;14980:21;14995:5;14980:21;:::i;:::-;14973:5;14970:32;14960:60;;15016:1;15013;15006:12;14960:60;14910:116;:::o;15032:137::-;15086:5;15117:6;15111:13;15102:22;;15133:30;15157:5;15133:30;:::i;:::-;15032:137;;;;:::o;15175:345::-;15242:6;15291:2;15279:9;15270:7;15266:23;15262:32;15259:119;;;15297:79;;:::i;:::-;15259:119;15417:1;15442:61;15495:7;15486:6;15475:9;15471:22;15442:61;:::i;:::-;15432:71;;15388:125;15175:345;;;;:::o;15526:223::-;15666:34;15662:1;15654:6;15650:14;15643:58;15735:6;15730:2;15722:6;15718:15;15711:31;15526:223;:::o;15755:366::-;15897:3;15918:67;15982:2;15977:3;15918:67;:::i;:::-;15911:74;;15994:93;16083:3;15994:93;:::i;:::-;16112:2;16107:3;16103:12;16096:19;;15755:366;;;:::o;16127:419::-;16293:4;16331:2;16320:9;16316:18;16308:26;;16380:9;16374:4;16370:20;16366:1;16355:9;16351:17;16344:47;16408:131;16534:4;16408:131;:::i;:::-;16400:139;;16127:419;;;:::o;16552:221::-;16692:34;16688:1;16680:6;16676:14;16669:58;16761:4;16756:2;16748:6;16744:15;16737:29;16552:221;:::o;16779:366::-;16921:3;16942:67;17006:2;17001:3;16942:67;:::i;:::-;16935:74;;17018:93;17107:3;17018:93;:::i;:::-;17136:2;17131:3;17127:12;17120:19;;16779:366;;;:::o;17151:419::-;17317:4;17355:2;17344:9;17340:18;17332:26;;17404:9;17398:4;17394:20;17390:1;17379:9;17375:17;17368:47;17432:131;17558:4;17432:131;:::i;:::-;17424:139;;17151:419;;;:::o;17576:224::-;17716:34;17712:1;17704:6;17700:14;17693:58;17785:7;17780:2;17772:6;17768:15;17761:32;17576:224;:::o;17806:366::-;17948:3;17969:67;18033:2;18028:3;17969:67;:::i;:::-;17962:74;;18045:93;18134:3;18045:93;:::i;:::-;18163:2;18158:3;18154:12;18147:19;;17806:366;;;:::o;18178:419::-;18344:4;18382:2;18371:9;18367:18;18359:26;;18431:9;18425:4;18421:20;18417:1;18406:9;18402:17;18395:47;18459:131;18585:4;18459:131;:::i;:::-;18451:139;;18178:419;;;:::o;18603:222::-;18743:34;18739:1;18731:6;18727:14;18720:58;18812:5;18807:2;18799:6;18795:15;18788:30;18603:222;:::o;18831:366::-;18973:3;18994:67;19058:2;19053:3;18994:67;:::i;:::-;18987:74;;19070:93;19159:3;19070:93;:::i;:::-;19188:2;19183:3;19179:12;19172:19;;18831:366;;;:::o;19203:419::-;19369:4;19407:2;19396:9;19392:18;19384:26;;19456:9;19450:4;19446:20;19442:1;19431:9;19427:17;19420:47;19484:131;19610:4;19484:131;:::i;:::-;19476:139;;19203:419;;;:::o;19628:228::-;19768:34;19764:1;19756:6;19752:14;19745:58;19837:11;19832:2;19824:6;19820:15;19813:36;19628:228;:::o;19862:366::-;20004:3;20025:67;20089:2;20084:3;20025:67;:::i;:::-;20018:74;;20101:93;20190:3;20101:93;:::i;:::-;20219:2;20214:3;20210:12;20203:19;;19862:366;;;:::o;20234:419::-;20400:4;20438:2;20427:9;20423:18;20415:26;;20487:9;20481:4;20477:20;20473:1;20462:9;20458:17;20451:47;20515:131;20641:4;20515:131;:::i;:::-;20507:139;;20234:419;;;:::o;20659:297::-;20799:34;20795:1;20787:6;20783:14;20776:58;20868:34;20863:2;20855:6;20851:15;20844:59;20937:11;20932:2;20924:6;20920:15;20913:36;20659:297;:::o;20962:366::-;21104:3;21125:67;21189:2;21184:3;21125:67;:::i;:::-;21118:74;;21201:93;21290:3;21201:93;:::i;:::-;21319:2;21314:3;21310:12;21303:19;;20962:366;;;:::o;21334:419::-;21500:4;21538:2;21527:9;21523:18;21515:26;;21587:9;21581:4;21577:20;21573:1;21562:9;21558:17;21551:47;21615:131;21741:4;21615:131;:::i;:::-;21607:139;;21334:419;;;:::o;21759:175::-;21899:27;21895:1;21887:6;21883:14;21876:51;21759:175;:::o;21940:366::-;22082:3;22103:67;22167:2;22162:3;22103:67;:::i;:::-;22096:74;;22179:93;22268:3;22179:93;:::i;:::-;22297:2;22292:3;22288:12;22281:19;;21940:366;;;:::o;22312:419::-;22478:4;22516:2;22505:9;22501:18;22493:26;;22565:9;22559:4;22555:20;22551:1;22540:9;22536:17;22529:47;22593:131;22719:4;22593:131;:::i;:::-;22585:139;;22312:419;;;:::o;22737:191::-;22777:3;22796:20;22814:1;22796:20;:::i;:::-;22791:25;;22830:20;22848:1;22830:20;:::i;:::-;22825:25;;22873:1;22870;22866:9;22859:16;;22894:3;22891:1;22888:10;22885:36;;;22901:18;;:::i;:::-;22885:36;22737:191;;;;:::o;22934:176::-;23074:28;23070:1;23062:6;23058:14;23051:52;22934:176;:::o;23116:366::-;23258:3;23279:67;23343:2;23338:3;23279:67;:::i;:::-;23272:74;;23355:93;23444:3;23355:93;:::i;:::-;23473:2;23468:3;23464:12;23457:19;;23116:366;;;:::o;23488:419::-;23654:4;23692:2;23681:9;23677:18;23669:26;;23741:9;23735:4;23731:20;23727:1;23716:9;23712:17;23705:47;23769:131;23895:4;23769:131;:::i;:::-;23761:139;;23488:419;;;:::o;23913:233::-;23952:3;23975:24;23993:5;23975:24;:::i;:::-;23966:33;;24021:66;24014:5;24011:77;24008:103;;24091:18;;:::i;:::-;24008:103;24138:1;24131:5;24127:13;24120:20;;23913:233;;;:::o;24152:194::-;24192:4;24212:20;24230:1;24212:20;:::i;:::-;24207:25;;24246:20;24264:1;24246:20;:::i;:::-;24241:25;;24290:1;24287;24283:9;24275:17;;24314:1;24308:4;24305:11;24302:37;;;24319:18;;:::i;:::-;24302:37;24152:194;;;;:::o;24352:180::-;24400:77;24397:1;24390:88;24497:4;24494:1;24487:15;24521:4;24518:1;24511:15;24538:180;24586:77;24583:1;24576:88;24683:4;24680:1;24673:15;24707:4;24704:1;24697:15;24724:114;24791:6;24825:5;24819:12;24809:22;;24724:114;;;:::o;24844:184::-;24943:11;24977:6;24972:3;24965:19;25017:4;25012:3;25008:14;24993:29;;24844:184;;;;:::o;25034:132::-;25101:4;25124:3;25116:11;;25154:4;25149:3;25145:14;25137:22;;25034:132;;;:::o;25172:108::-;25249:24;25267:5;25249:24;:::i;:::-;25244:3;25237:37;25172:108;;:::o;25286:179::-;25355:10;25376:46;25418:3;25410:6;25376:46;:::i;:::-;25454:4;25449:3;25445:14;25431:28;;25286:179;;;;:::o;25471:113::-;25541:4;25573;25568:3;25564:14;25556:22;;25471:113;;;:::o;25620:732::-;25739:3;25768:54;25816:5;25768:54;:::i;:::-;25838:86;25917:6;25912:3;25838:86;:::i;:::-;25831:93;;25948:56;25998:5;25948:56;:::i;:::-;26027:7;26058:1;26043:284;26068:6;26065:1;26062:13;26043:284;;;26144:6;26138:13;26171:63;26230:3;26215:13;26171:63;:::i;:::-;26164:70;;26257:60;26310:6;26257:60;:::i;:::-;26247:70;;26103:224;26090:1;26087;26083:9;26078:14;;26043:284;;;26047:14;26343:3;26336:10;;25744:608;;;25620:732;;;;:::o;26358:831::-;26621:4;26659:3;26648:9;26644:19;26636:27;;26673:71;26741:1;26730:9;26726:17;26717:6;26673:71;:::i;:::-;26754:80;26830:2;26819:9;26815:18;26806:6;26754:80;:::i;:::-;26881:9;26875:4;26871:20;26866:2;26855:9;26851:18;26844:48;26909:108;27012:4;27003:6;26909:108;:::i;:::-;26901:116;;27027:72;27095:2;27084:9;27080:18;27071:6;27027:72;:::i;:::-;27109:73;27177:3;27166:9;27162:19;27153:6;27109:73;:::i;:::-;26358:831;;;;;;;;:::o;27195:220::-;27335:34;27331:1;27323:6;27319:14;27312:58;27404:3;27399:2;27391:6;27387:15;27380:28;27195:220;:::o;27421:366::-;27563:3;27584:67;27648:2;27643:3;27584:67;:::i;:::-;27577:74;;27660:93;27749:3;27660:93;:::i;:::-;27778:2;27773:3;27769:12;27762:19;;27421:366;;;:::o;27793:419::-;27959:4;27997:2;27986:9;27982:18;27974:26;;28046:9;28040:4;28036:20;28032:1;28021:9;28017:17;28010:47;28074:131;28200:4;28074:131;:::i;:::-;28066:139;;27793:419;;;:::o;28218:177::-;28358:29;28354:1;28346:6;28342:14;28335:53;28218:177;:::o;28401:366::-;28543:3;28564:67;28628:2;28623:3;28564:67;:::i;:::-;28557:74;;28640:93;28729:3;28640:93;:::i;:::-;28758:2;28753:3;28749:12;28742:19;;28401:366;;;:::o;28773:419::-;28939:4;28977:2;28966:9;28962:18;28954:26;;29026:9;29020:4;29016:20;29012:1;29001:9;28997:17;28990:47;29054:131;29180:4;29054:131;:::i;:::-;29046:139;;28773:419;;;:::o

Swarm Source

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