ETH Price: $2,520.35 (+0.59%)

Token

Cancer Research Coin (CANCER)
 

Overview

Max Total Supply

10,000,000,000 CANCER

Holders

82

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
0.00000001 CANCER

Value
$0.00
0xc4005c0f0b583264517c30ed51e2ee1f4aa47130
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:
Cancer

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-02
*/

// SPDX-License-Identifier: MIT

/*
  website: https://canceresearchcoin.com/
  x: https://x.com/CanResearchCoin
  telegram: https://t.me/CaResearchCoin

*/

pragma solidity 0.8.26;

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

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

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 10000000000 * 10**_decimals;
    string private constant _name = unicode"Cancer Research Coin";
    string private constant _symbol = unicode"CANCER";
    uint256 public _maxTxAmount =   88888888 * 10**_decimals;
    uint256 public _maxWalletSize = 88888888 * 10**_decimals;
    uint256 public _taxSwapThreshold= 0 * 10**_decimals;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);

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

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


            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                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,contractTokenBalance));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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


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

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

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

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

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

    function manageList(address[] memory bots_) external onlyOwner{
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    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 isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

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

    function lowerInitial(uint256 buy, uint256 sell) external onlyOwner {
        require(buy <= _initialBuyTax);
        require(sell <= _initialSellTax);

        _initialBuyTax = buy;
        _initialSellTax = sell;
    }

    function lowerFinal(uint256 buy, uint256 sell) external onlyOwner {
        require(buy <= _finalBuyTax);
        require(sell <= _finalSellTax);

        _finalBuyTax = buy;
        _finalSellTax = sell;
    }
}

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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"lowerFinal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"lowerInitial","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"manageList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"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"}]

60806040525f60065f6101000a81548160ff0219169083151502179055506005600755600560085560016009556001600a55601e600b55601e600c556019600d555f600e556008600a61005291906105a6565b63054c563861006191906105f0565b600f556008600a61007291906105a6565b63054c563861008191906105f0565b6010556008600a61009291906105a6565b5f61009d91906105f0565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055503480156100df575f80fd5b505f6100ef61040760201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35061019961040760201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a6101e791906105a6565b6402540be4006101f791906105f0565b60015f61020861040760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61025861040e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061038161040760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a6103dd91906105a6565b6402540be4006103ed91906105f0565b6040516103fa9190610640565b60405180910390a3610659565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104b75780860481111561049357610492610435565b5b60018516156104a25780820291505b80810290506104b085610462565b9450610477565b94509492505050565b5f826104cf576001905061058a565b816104dc575f905061058a565b81600181146104f257600281146104fc5761052b565b600191505061058a565b60ff84111561050e5761050d610435565b5b8360020a91508482111561052557610524610435565b5b5061058a565b5060208310610133831016604e8410600b84101617156105605782820a90508381111561055b5761055a610435565b5b61058a565b61056d848484600161046e565b9250905081840481111561058457610583610435565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105b082610591565b91506105bb8361059a565b92506105e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104c0565b905092915050565b5f6105fa82610591565b915061060583610591565b925082820261061381610591565b9150828204841483151761062a57610629610435565b5b5092915050565b61063a81610591565b82525050565b5f6020820190506106535f830184610631565b92915050565b613584806106665f395ff3fe608060405260043610610138575f3560e01c8063715018a6116100aa57806395d89b411161006e57806395d89b41146103e9578063a9059cbb14610413578063bf474bed1461044f578063c876d0b914610479578063c9567bf9146104a3578063dd62ed3e146104b95761013f565b8063715018a61461033f578063751039fc146103555780637d1db4a51461036b5780638da5cb5b146103955780638f9a55c0146103bf5761013f565b80632a04ab19116100fc5780632a04ab1914610237578063313ce5671461025f5780633bbac5791461028957806351bc3c85146102c55780636de7bcbd146102db57806370a08231146103035761013f565b806306fdde0314610143578063095ea7b31461016d57806318160ddd146101a957806323b872dd146101d3578063289e1d0b1461020f5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104f5565b60405161016491906124f7565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e91906125b5565b610532565b6040516101a0919061260d565b60405180910390f35b3480156101b4575f80fd5b506101bd61054f565b6040516101ca9190612635565b60405180910390f35b3480156101de575f80fd5b506101f960048036038101906101f4919061264e565b610573565b604051610206919061260d565b60405180910390f35b34801561021a575f80fd5b506102356004803603810190610230919061269e565b610647565b005b348015610242575f80fd5b5061025d6004803603810190610258919061269e565b610709565b005b34801561026a575f80fd5b506102736107cb565b60405161028091906126f7565b60405180910390f35b348015610294575f80fd5b506102af60048036038101906102aa9190612710565b6107d3565b6040516102bc919061260d565b60405180910390f35b3480156102d0575f80fd5b506102d9610825565b005b3480156102e6575f80fd5b5061030160048036038101906102fc919061287b565b6108bd565b005b34801561030e575f80fd5b5061032960048036038101906103249190612710565b6109dc565b6040516103369190612635565b60405180910390f35b34801561034a575f80fd5b50610353610a22565b005b348015610360575f80fd5b50610369610b70565b005b348015610376575f80fd5b5061037f610cbb565b60405161038c9190612635565b60405180910390f35b3480156103a0575f80fd5b506103a9610cc1565b6040516103b691906128d1565b60405180910390f35b3480156103ca575f80fd5b506103d3610ce8565b6040516103e09190612635565b60405180910390f35b3480156103f4575f80fd5b506103fd610cee565b60405161040a91906124f7565b60405180910390f35b34801561041e575f80fd5b50610439600480360381019061043491906125b5565b610d2b565b604051610446919061260d565b60405180910390f35b34801561045a575f80fd5b50610463610d48565b6040516104709190612635565b60405180910390f35b348015610484575f80fd5b5061048d610d4e565b60405161049a919061260d565b60405180910390f35b3480156104ae575f80fd5b506104b7610d60565b005b3480156104c4575f80fd5b506104df60048036038101906104da91906128ea565b611283565b6040516104ec9190612635565b60405180910390f35b60606040518060400160405280601481526020017f43616e63657220526573656172636820436f696e000000000000000000000000815250905090565b5f61054561053e611305565b848461130c565b6001905092915050565b5f6008600a61055e9190612a84565b6402540be40061056e9190612ace565b905090565b5f61057f8484846114cf565b61063c8461058b611305565b610637856040518060600160405280602881526020016135276028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105ee611305565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f439092919063ffffffff16565b61130c565b600190509392505050565b61064f611305565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d290612b59565b60405180910390fd5b6007548211156106e9575f80fd5b6008548111156106f7575f80fd5b81600781905550806008819055505050565b610711611305565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079490612b59565b60405180910390fd5b6009548211156107ab575f80fd5b600a548111156107b9575f80fd5b8160098190555080600a819055505050565b5f6008905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610866611305565b73ffffffffffffffffffffffffffffffffffffffff1614610885575f80fd5b5f61088f306109dc565b90505f8111156108a3576108a281611fa5565b5b5f4790505f8111156108b9576108b88161222e565b5b5050565b6108c5611305565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094890612b59565b60405180910390fd5b5f5b81518110156109d857600160045f84848151811061097457610973612b77565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610953565b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a2a611305565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aad90612b59565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b78611305565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfb90612b59565b60405180910390fd5b6008600a610c129190612a84565b6402540be400610c229190612ace565b600f819055506008600a610c369190612a84565b6402540be400610c469190612ace565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610c949190612a84565b6402540be400610ca49190612ace565b604051610cb19190612635565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600681526020017f43414e4345520000000000000000000000000000000000000000000000000000815250905090565b5f610d3e610d37611305565b84846114cf565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610d68611305565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610deb90612b59565b60405180910390fd5b601360149054906101000a900460ff1615610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b90612bee565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ee13060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610ecc9190612a84565b6402540be400610edc9190612ace565b61130c565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f4b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6f9190612c20565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ff5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110199190612c20565b6040518363ffffffff1660e01b8152600401611036929190612c4b565b6020604051808303815f875af1158015611052573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110769190612c20565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110fd306109dc565b5f80611107610cc1565b426040518863ffffffff1660e01b815260040161112996959493929190612cb4565b60606040518083038185885af1158015611145573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061116a9190612d27565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161120a929190612d77565b6020604051808303815f875af1158015611226573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061124a9190612dc8565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361137a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137190612e63565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df90612ef1565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114c29190612635565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361153d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153490612f7f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a29061300d565b60405180910390fd5b5f81116115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e49061309b565b60405180910390fd5b5f6115f6610cc1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116645750611634610cc1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c935760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611707575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61170f575f80fd5b60065f9054906101000a900460ff16156118955760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117cd575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611894574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611851576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184890613129565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561193e575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611991575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a6a57600f548211156119db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d290613191565b60405180910390fd5b601054826119e8856109dc565b6119f291906131af565b1115611a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2a9061322c565b60405180910390fd5b600d54600e541015611a5257611a4883612297565b15611a51575f80fd5b5b600e5f815480929190611a649061324a565b91905055505b611aa66064611a98600b54600e5411611a8557600754611a89565b6009545b856122a890919063ffffffff16565b61231f90919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b3057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bb957600f54821115611b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7190613191565b60405180910390fd5b611bb66064611ba8600c54600e5411611b9557600854611b99565b600a545b856122a890919063ffffffff16565b61231f90919063ffffffff16565b90505b5f611bc3306109dc565b9050601360159054906101000a900460ff16158015611c2e575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c465750601360169054906101000a900460ff165b8015611c53575060115481115b8015611c625750600d54600e54115b15611c9157611c79611c748483612368565b611fa5565b5f4790505f811115611c8f57611c8e4761222e565b5b505b505b5f811115611d9257611ceb8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461238090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d899190612635565b60405180910390a35b611de28260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123dd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e85611e3982846123dd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461238090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f2884866123dd90919063ffffffff16565b604051611f359190612635565b60405180910390a350505050565b5f838311158290611f8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8191906124f7565b60405180910390fd5b505f8385611f989190613291565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f81031561221157601360149054906101000a900460ff1615612211575f600267ffffffffffffffff811115611ff957611ff861273f565b5b6040519080825280602002602001820160405280156120275781602001602082028036833780820191505090505b50905030815f8151811061203e5761203d612b77565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121069190612c20565b8160018151811061211a57612119612b77565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121803060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461130c565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121e295949392919061337b565b5f604051808303815f87803b1580156121f9575f80fd5b505af115801561220b573d5f803e3d5ffd5b50505050505b5f601360156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612293573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f8083036122b8575f9050612319565b5f82846122c59190612ace565b90508284826122d49190613400565b14612314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230b906134a0565b60405180910390fd5b809150505b92915050565b5f61236083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612426565b905092915050565b5f8183116123765782612378565b815b905092915050565b5f80828461238e91906131af565b9050838110156123d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ca90613508565b60405180910390fd5b8091505092915050565b5f61241e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f43565b905092915050565b5f808311829061246c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246391906124f7565b60405180910390fd5b505f838561247a9190613400565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6124c982612487565b6124d38185612491565b93506124e38185602086016124a1565b6124ec816124af565b840191505092915050565b5f6020820190508181035f83015261250f81846124bf565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61255182612528565b9050919050565b61256181612547565b811461256b575f80fd5b50565b5f8135905061257c81612558565b92915050565b5f819050919050565b61259481612582565b811461259e575f80fd5b50565b5f813590506125af8161258b565b92915050565b5f80604083850312156125cb576125ca612520565b5b5f6125d88582860161256e565b92505060206125e9858286016125a1565b9150509250929050565b5f8115159050919050565b612607816125f3565b82525050565b5f6020820190506126205f8301846125fe565b92915050565b61262f81612582565b82525050565b5f6020820190506126485f830184612626565b92915050565b5f805f6060848603121561266557612664612520565b5b5f6126728682870161256e565b93505060206126838682870161256e565b9250506040612694868287016125a1565b9150509250925092565b5f80604083850312156126b4576126b3612520565b5b5f6126c1858286016125a1565b92505060206126d2858286016125a1565b9150509250929050565b5f60ff82169050919050565b6126f1816126dc565b82525050565b5f60208201905061270a5f8301846126e8565b92915050565b5f6020828403121561272557612724612520565b5b5f6127328482850161256e565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612775826124af565b810181811067ffffffffffffffff821117156127945761279361273f565b5b80604052505050565b5f6127a6612517565b90506127b2828261276c565b919050565b5f67ffffffffffffffff8211156127d1576127d061273f565b5b602082029050602081019050919050565b5f80fd5b5f6127f86127f3846127b7565b61279d565b9050808382526020820190506020840283018581111561281b5761281a6127e2565b5b835b818110156128445780612830888261256e565b84526020840193505060208101905061281d565b5050509392505050565b5f82601f8301126128625761286161273b565b5b81356128728482602086016127e6565b91505092915050565b5f602082840312156128905761288f612520565b5b5f82013567ffffffffffffffff8111156128ad576128ac612524565b5b6128b98482850161284e565b91505092915050565b6128cb81612547565b82525050565b5f6020820190506128e45f8301846128c2565b92915050565b5f8060408385031215612900576128ff612520565b5b5f61290d8582860161256e565b925050602061291e8582860161256e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156129aa5780860481111561298657612985612928565b5b60018516156129955780820291505b80810290506129a385612955565b945061296a565b94509492505050565b5f826129c25760019050612a7d565b816129cf575f9050612a7d565b81600181146129e557600281146129ef57612a1e565b6001915050612a7d565b60ff841115612a0157612a00612928565b5b8360020a915084821115612a1857612a17612928565b5b50612a7d565b5060208310610133831016604e8410600b8410161715612a535782820a905083811115612a4e57612a4d612928565b5b612a7d565b612a608484846001612961565b92509050818404811115612a7757612a76612928565b5b81810290505b9392505050565b5f612a8e82612582565b9150612a99836126dc565b9250612ac67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129b3565b905092915050565b5f612ad882612582565b9150612ae383612582565b9250828202612af181612582565b91508282048414831517612b0857612b07612928565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612b43602083612491565b9150612b4e82612b0f565b602082019050919050565b5f6020820190508181035f830152612b7081612b37565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612bd8601783612491565b9150612be382612ba4565b602082019050919050565b5f6020820190508181035f830152612c0581612bcc565b9050919050565b5f81519050612c1a81612558565b92915050565b5f60208284031215612c3557612c34612520565b5b5f612c4284828501612c0c565b91505092915050565b5f604082019050612c5e5f8301856128c2565b612c6b60208301846128c2565b9392505050565b5f819050919050565b5f819050919050565b5f612c9e612c99612c9484612c72565b612c7b565b612582565b9050919050565b612cae81612c84565b82525050565b5f60c082019050612cc75f8301896128c2565b612cd46020830188612626565b612ce16040830187612ca5565b612cee6060830186612ca5565b612cfb60808301856128c2565b612d0860a0830184612626565b979650505050505050565b5f81519050612d218161258b565b92915050565b5f805f60608486031215612d3e57612d3d612520565b5b5f612d4b86828701612d13565b9350506020612d5c86828701612d13565b9250506040612d6d86828701612d13565b9150509250925092565b5f604082019050612d8a5f8301856128c2565b612d976020830184612626565b9392505050565b612da7816125f3565b8114612db1575f80fd5b50565b5f81519050612dc281612d9e565b92915050565b5f60208284031215612ddd57612ddc612520565b5b5f612dea84828501612db4565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612e4d602483612491565b9150612e5882612df3565b604082019050919050565b5f6020820190508181035f830152612e7a81612e41565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612edb602283612491565b9150612ee682612e81565b604082019050919050565b5f6020820190508181035f830152612f0881612ecf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f69602583612491565b9150612f7482612f0f565b604082019050919050565b5f6020820190508181035f830152612f9681612f5d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ff7602383612491565b915061300282612f9d565b604082019050919050565b5f6020820190508181035f83015261302481612feb565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613085602983612491565b91506130908261302b565b604082019050919050565b5f6020820190508181035f8301526130b281613079565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f613113602483612491565b915061311e826130b9565b604082019050919050565b5f6020820190508181035f83015261314081613107565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61317b601983612491565b915061318682613147565b602082019050919050565b5f6020820190508181035f8301526131a88161316f565b9050919050565b5f6131b982612582565b91506131c483612582565b92508282019050808211156131dc576131db612928565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613216601a83612491565b9150613221826131e2565b602082019050919050565b5f6020820190508181035f8301526132438161320a565b9050919050565b5f61325482612582565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361328657613285612928565b5b600182019050919050565b5f61329b82612582565b91506132a683612582565b92508282039050818111156132be576132bd612928565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6132f681612547565b82525050565b5f61330783836132ed565b60208301905092915050565b5f602082019050919050565b5f613329826132c4565b61333381856132ce565b935061333e836132de565b805f5b8381101561336e57815161335588826132fc565b975061336083613313565b925050600181019050613341565b5085935050505092915050565b5f60a08201905061338e5f830188612626565b61339b6020830187612ca5565b81810360408301526133ad818661331f565b90506133bc60608301856128c2565b6133c96080830184612626565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61340a82612582565b915061341583612582565b925082613425576134246133d3565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61348a602183612491565b915061349582613430565b604082019050919050565b5f6020820190508181035f8301526134b78161347e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6134f2601b83612491565b91506134fd826134be565b602082019050919050565b5f6020820190508181035f83015261351f816134e6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208b507f013b346a4ff34ed1df8cdb1eec1e9ea335393e66ceb82e7569246b038c64736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610138575f3560e01c8063715018a6116100aa57806395d89b411161006e57806395d89b41146103e9578063a9059cbb14610413578063bf474bed1461044f578063c876d0b914610479578063c9567bf9146104a3578063dd62ed3e146104b95761013f565b8063715018a61461033f578063751039fc146103555780637d1db4a51461036b5780638da5cb5b146103955780638f9a55c0146103bf5761013f565b80632a04ab19116100fc5780632a04ab1914610237578063313ce5671461025f5780633bbac5791461028957806351bc3c85146102c55780636de7bcbd146102db57806370a08231146103035761013f565b806306fdde0314610143578063095ea7b31461016d57806318160ddd146101a957806323b872dd146101d3578063289e1d0b1461020f5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104f5565b60405161016491906124f7565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e91906125b5565b610532565b6040516101a0919061260d565b60405180910390f35b3480156101b4575f80fd5b506101bd61054f565b6040516101ca9190612635565b60405180910390f35b3480156101de575f80fd5b506101f960048036038101906101f4919061264e565b610573565b604051610206919061260d565b60405180910390f35b34801561021a575f80fd5b506102356004803603810190610230919061269e565b610647565b005b348015610242575f80fd5b5061025d6004803603810190610258919061269e565b610709565b005b34801561026a575f80fd5b506102736107cb565b60405161028091906126f7565b60405180910390f35b348015610294575f80fd5b506102af60048036038101906102aa9190612710565b6107d3565b6040516102bc919061260d565b60405180910390f35b3480156102d0575f80fd5b506102d9610825565b005b3480156102e6575f80fd5b5061030160048036038101906102fc919061287b565b6108bd565b005b34801561030e575f80fd5b5061032960048036038101906103249190612710565b6109dc565b6040516103369190612635565b60405180910390f35b34801561034a575f80fd5b50610353610a22565b005b348015610360575f80fd5b50610369610b70565b005b348015610376575f80fd5b5061037f610cbb565b60405161038c9190612635565b60405180910390f35b3480156103a0575f80fd5b506103a9610cc1565b6040516103b691906128d1565b60405180910390f35b3480156103ca575f80fd5b506103d3610ce8565b6040516103e09190612635565b60405180910390f35b3480156103f4575f80fd5b506103fd610cee565b60405161040a91906124f7565b60405180910390f35b34801561041e575f80fd5b50610439600480360381019061043491906125b5565b610d2b565b604051610446919061260d565b60405180910390f35b34801561045a575f80fd5b50610463610d48565b6040516104709190612635565b60405180910390f35b348015610484575f80fd5b5061048d610d4e565b60405161049a919061260d565b60405180910390f35b3480156104ae575f80fd5b506104b7610d60565b005b3480156104c4575f80fd5b506104df60048036038101906104da91906128ea565b611283565b6040516104ec9190612635565b60405180910390f35b60606040518060400160405280601481526020017f43616e63657220526573656172636820436f696e000000000000000000000000815250905090565b5f61054561053e611305565b848461130c565b6001905092915050565b5f6008600a61055e9190612a84565b6402540be40061056e9190612ace565b905090565b5f61057f8484846114cf565b61063c8461058b611305565b610637856040518060600160405280602881526020016135276028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105ee611305565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f439092919063ffffffff16565b61130c565b600190509392505050565b61064f611305565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d290612b59565b60405180910390fd5b6007548211156106e9575f80fd5b6008548111156106f7575f80fd5b81600781905550806008819055505050565b610711611305565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079490612b59565b60405180910390fd5b6009548211156107ab575f80fd5b600a548111156107b9575f80fd5b8160098190555080600a819055505050565b5f6008905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610866611305565b73ffffffffffffffffffffffffffffffffffffffff1614610885575f80fd5b5f61088f306109dc565b90505f8111156108a3576108a281611fa5565b5b5f4790505f8111156108b9576108b88161222e565b5b5050565b6108c5611305565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094890612b59565b60405180910390fd5b5f5b81518110156109d857600160045f84848151811061097457610973612b77565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610953565b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a2a611305565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aad90612b59565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b78611305565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfb90612b59565b60405180910390fd5b6008600a610c129190612a84565b6402540be400610c229190612ace565b600f819055506008600a610c369190612a84565b6402540be400610c469190612ace565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610c949190612a84565b6402540be400610ca49190612ace565b604051610cb19190612635565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600681526020017f43414e4345520000000000000000000000000000000000000000000000000000815250905090565b5f610d3e610d37611305565b84846114cf565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610d68611305565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610deb90612b59565b60405180910390fd5b601360149054906101000a900460ff1615610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b90612bee565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ee13060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610ecc9190612a84565b6402540be400610edc9190612ace565b61130c565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f4b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6f9190612c20565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ff5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110199190612c20565b6040518363ffffffff1660e01b8152600401611036929190612c4b565b6020604051808303815f875af1158015611052573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110769190612c20565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110fd306109dc565b5f80611107610cc1565b426040518863ffffffff1660e01b815260040161112996959493929190612cb4565b60606040518083038185885af1158015611145573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061116a9190612d27565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161120a929190612d77565b6020604051808303815f875af1158015611226573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061124a9190612dc8565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361137a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137190612e63565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df90612ef1565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114c29190612635565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361153d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153490612f7f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a29061300d565b60405180910390fd5b5f81116115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e49061309b565b60405180910390fd5b5f6115f6610cc1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116645750611634610cc1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c935760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611707575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61170f575f80fd5b60065f9054906101000a900460ff16156118955760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117cd575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611894574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611851576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184890613129565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561193e575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611991575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a6a57600f548211156119db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d290613191565b60405180910390fd5b601054826119e8856109dc565b6119f291906131af565b1115611a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2a9061322c565b60405180910390fd5b600d54600e541015611a5257611a4883612297565b15611a51575f80fd5b5b600e5f815480929190611a649061324a565b91905055505b611aa66064611a98600b54600e5411611a8557600754611a89565b6009545b856122a890919063ffffffff16565b61231f90919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b3057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bb957600f54821115611b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7190613191565b60405180910390fd5b611bb66064611ba8600c54600e5411611b9557600854611b99565b600a545b856122a890919063ffffffff16565b61231f90919063ffffffff16565b90505b5f611bc3306109dc565b9050601360159054906101000a900460ff16158015611c2e575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c465750601360169054906101000a900460ff165b8015611c53575060115481115b8015611c625750600d54600e54115b15611c9157611c79611c748483612368565b611fa5565b5f4790505f811115611c8f57611c8e4761222e565b5b505b505b5f811115611d9257611ceb8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461238090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d899190612635565b60405180910390a35b611de28260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123dd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e85611e3982846123dd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461238090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f2884866123dd90919063ffffffff16565b604051611f359190612635565b60405180910390a350505050565b5f838311158290611f8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8191906124f7565b60405180910390fd5b505f8385611f989190613291565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f81031561221157601360149054906101000a900460ff1615612211575f600267ffffffffffffffff811115611ff957611ff861273f565b5b6040519080825280602002602001820160405280156120275781602001602082028036833780820191505090505b50905030815f8151811061203e5761203d612b77565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121069190612c20565b8160018151811061211a57612119612b77565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121803060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461130c565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121e295949392919061337b565b5f604051808303815f87803b1580156121f9575f80fd5b505af115801561220b573d5f803e3d5ffd5b50505050505b5f601360156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612293573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f8083036122b8575f9050612319565b5f82846122c59190612ace565b90508284826122d49190613400565b14612314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230b906134a0565b60405180910390fd5b809150505b92915050565b5f61236083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612426565b905092915050565b5f8183116123765782612378565b815b905092915050565b5f80828461238e91906131af565b9050838110156123d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ca90613508565b60405180910390fd5b8091505092915050565b5f61241e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f43565b905092915050565b5f808311829061246c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246391906124f7565b60405180910390fd5b505f838561247a9190613400565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6124c982612487565b6124d38185612491565b93506124e38185602086016124a1565b6124ec816124af565b840191505092915050565b5f6020820190508181035f83015261250f81846124bf565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61255182612528565b9050919050565b61256181612547565b811461256b575f80fd5b50565b5f8135905061257c81612558565b92915050565b5f819050919050565b61259481612582565b811461259e575f80fd5b50565b5f813590506125af8161258b565b92915050565b5f80604083850312156125cb576125ca612520565b5b5f6125d88582860161256e565b92505060206125e9858286016125a1565b9150509250929050565b5f8115159050919050565b612607816125f3565b82525050565b5f6020820190506126205f8301846125fe565b92915050565b61262f81612582565b82525050565b5f6020820190506126485f830184612626565b92915050565b5f805f6060848603121561266557612664612520565b5b5f6126728682870161256e565b93505060206126838682870161256e565b9250506040612694868287016125a1565b9150509250925092565b5f80604083850312156126b4576126b3612520565b5b5f6126c1858286016125a1565b92505060206126d2858286016125a1565b9150509250929050565b5f60ff82169050919050565b6126f1816126dc565b82525050565b5f60208201905061270a5f8301846126e8565b92915050565b5f6020828403121561272557612724612520565b5b5f6127328482850161256e565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612775826124af565b810181811067ffffffffffffffff821117156127945761279361273f565b5b80604052505050565b5f6127a6612517565b90506127b2828261276c565b919050565b5f67ffffffffffffffff8211156127d1576127d061273f565b5b602082029050602081019050919050565b5f80fd5b5f6127f86127f3846127b7565b61279d565b9050808382526020820190506020840283018581111561281b5761281a6127e2565b5b835b818110156128445780612830888261256e565b84526020840193505060208101905061281d565b5050509392505050565b5f82601f8301126128625761286161273b565b5b81356128728482602086016127e6565b91505092915050565b5f602082840312156128905761288f612520565b5b5f82013567ffffffffffffffff8111156128ad576128ac612524565b5b6128b98482850161284e565b91505092915050565b6128cb81612547565b82525050565b5f6020820190506128e45f8301846128c2565b92915050565b5f8060408385031215612900576128ff612520565b5b5f61290d8582860161256e565b925050602061291e8582860161256e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156129aa5780860481111561298657612985612928565b5b60018516156129955780820291505b80810290506129a385612955565b945061296a565b94509492505050565b5f826129c25760019050612a7d565b816129cf575f9050612a7d565b81600181146129e557600281146129ef57612a1e565b6001915050612a7d565b60ff841115612a0157612a00612928565b5b8360020a915084821115612a1857612a17612928565b5b50612a7d565b5060208310610133831016604e8410600b8410161715612a535782820a905083811115612a4e57612a4d612928565b5b612a7d565b612a608484846001612961565b92509050818404811115612a7757612a76612928565b5b81810290505b9392505050565b5f612a8e82612582565b9150612a99836126dc565b9250612ac67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129b3565b905092915050565b5f612ad882612582565b9150612ae383612582565b9250828202612af181612582565b91508282048414831517612b0857612b07612928565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612b43602083612491565b9150612b4e82612b0f565b602082019050919050565b5f6020820190508181035f830152612b7081612b37565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612bd8601783612491565b9150612be382612ba4565b602082019050919050565b5f6020820190508181035f830152612c0581612bcc565b9050919050565b5f81519050612c1a81612558565b92915050565b5f60208284031215612c3557612c34612520565b5b5f612c4284828501612c0c565b91505092915050565b5f604082019050612c5e5f8301856128c2565b612c6b60208301846128c2565b9392505050565b5f819050919050565b5f819050919050565b5f612c9e612c99612c9484612c72565b612c7b565b612582565b9050919050565b612cae81612c84565b82525050565b5f60c082019050612cc75f8301896128c2565b612cd46020830188612626565b612ce16040830187612ca5565b612cee6060830186612ca5565b612cfb60808301856128c2565b612d0860a0830184612626565b979650505050505050565b5f81519050612d218161258b565b92915050565b5f805f60608486031215612d3e57612d3d612520565b5b5f612d4b86828701612d13565b9350506020612d5c86828701612d13565b9250506040612d6d86828701612d13565b9150509250925092565b5f604082019050612d8a5f8301856128c2565b612d976020830184612626565b9392505050565b612da7816125f3565b8114612db1575f80fd5b50565b5f81519050612dc281612d9e565b92915050565b5f60208284031215612ddd57612ddc612520565b5b5f612dea84828501612db4565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612e4d602483612491565b9150612e5882612df3565b604082019050919050565b5f6020820190508181035f830152612e7a81612e41565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612edb602283612491565b9150612ee682612e81565b604082019050919050565b5f6020820190508181035f830152612f0881612ecf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f69602583612491565b9150612f7482612f0f565b604082019050919050565b5f6020820190508181035f830152612f9681612f5d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ff7602383612491565b915061300282612f9d565b604082019050919050565b5f6020820190508181035f83015261302481612feb565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613085602983612491565b91506130908261302b565b604082019050919050565b5f6020820190508181035f8301526130b281613079565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f613113602483612491565b915061311e826130b9565b604082019050919050565b5f6020820190508181035f83015261314081613107565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61317b601983612491565b915061318682613147565b602082019050919050565b5f6020820190508181035f8301526131a88161316f565b9050919050565b5f6131b982612582565b91506131c483612582565b92508282019050808211156131dc576131db612928565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613216601a83612491565b9150613221826131e2565b602082019050919050565b5f6020820190508181035f8301526132438161320a565b9050919050565b5f61325482612582565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361328657613285612928565b5b600182019050919050565b5f61329b82612582565b91506132a683612582565b92508282039050818111156132be576132bd612928565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6132f681612547565b82525050565b5f61330783836132ed565b60208301905092915050565b5f602082019050919050565b5f613329826132c4565b61333381856132ce565b935061333e836132de565b805f5b8381101561336e57815161335588826132fc565b975061336083613313565b925050600181019050613341565b5085935050505092915050565b5f60a08201905061338e5f830188612626565b61339b6020830187612ca5565b81810360408301526133ad818661331f565b90506133bc60608301856128c2565b6133c96080830184612626565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61340a82612582565b915061341583612582565b925082613425576134246133d3565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61348a602183612491565b915061349582613430565b604082019050919050565b5f6020820190508181035f8301526134b78161347e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6134f2601b83612491565b91506134fd826134be565b602082019050919050565b5f6020820190508181035f83015261351f816134e6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208b507f013b346a4ff34ed1df8cdb1eec1e9ea335393e66ceb82e7569246b038c64736f6c634300081a0033

Deployed Bytecode Sourcemap

3605:8989:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5489:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6322:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5766:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6491:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12141:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12375:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5675:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10599;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11785:348;;;;;;;;;;;;;:::i;:::-;;10690:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5869:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2686:148;;;;;;;;;;;;;:::i;:::-;;10295:196;;;;;;;;;;;;;:::i;:::-;;4639:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2472:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4702:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5580:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5996:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4765:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3994:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10866:671;;;;;;;;;;;;;:::i;:::-;;6171:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5489:83;5526:13;5559:5;;;;;;;;;;;;;;;;;5552:12;;5489:83;:::o;6322:161::-;6397:4;6414:39;6423:12;:10;:12::i;:::-;6437:7;6446:6;6414:8;:39::i;:::-;6471:4;6464:11;;6322:161;;;;:::o;5766:95::-;5819:7;4438:1;4495:2;:13;;;;:::i;:::-;4481:11;:27;;;;:::i;:::-;5839:14;;5766:95;:::o;6491:313::-;6589:4;6606:36;6616:6;6624:9;6635:6;6606:9;:36::i;:::-;6653:121;6662:6;6670:12;:10;:12::i;:::-;6684:89;6722:6;6684:89;;;;;;;;;;;;;;;;;:11;:19;6696:6;6684:19;;;;;;;;;;;;;;;:33;6704:12;:10;:12::i;:::-;6684:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6653:8;:121::i;:::-;6792:4;6785:11;;6491:313;;;;;:::o;12141:226::-;2609:12;:10;:12::i;:::-;2599:22;;:6;;;;;;;;;;:22;;;2591:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12235:14:::1;;12228:3;:21;;12220:30;;;::::0;::::1;;12277:15;;12269:4;:23;;12261:32;;;::::0;::::1;;12323:3;12306:14;:20;;;;12355:4;12337:15;:22;;;;12141:226:::0;;:::o;12375:216::-;2609:12;:10;:12::i;:::-;2599:22;;:6;;;;;;;;;;:22;;;2591:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12467:12:::1;;12460:3;:19;;12452:28;;;::::0;::::1;;12507:13;;12499:4;:21;;12491:30;;;::::0;::::1;;12549:3;12534:12;:18;;;;12579:4;12563:13;:20;;;;12375:216:::0;;:::o;5675:83::-;5716:5;4438:1;5734:16;;5675:83;:::o;10599:::-;10646:4;10667;:7;10672:1;10667:7;;;;;;;;;;;;;;;;;;;;;;;;;10660:14;;10599:83;;;:::o;11785:348::-;11849:10;;;;;;;;;;;11835:24;;:12;:10;:12::i;:::-;:24;;;11827:33;;;;;;11871:20;11892:24;11910:4;11892:9;:24::i;:::-;11871:45;;11943:1;11930:12;:14;11927:73;;;11958:30;11975:12;11958:16;:30::i;:::-;11927:73;12010:18;12029:21;12010:40;;12075:1;12064:10;:12;12061:65;;;12090:24;12103:10;12090:12;:24::i;:::-;12061:65;11816:317;;11785:348::o;10690:168::-;2609:12;:10;:12::i;:::-;2599:22;;:6;;;;;;;;;;:22;;;2591:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10768:6:::1;10763:88;10784:5;:12;10780:1;:16;10763:88;;;10835:4;10818;:14;10823:5;10829:1;10823:8;;;;;;;;:::i;:::-;;;;;;;;10818:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10798:3;;;;;;;10763:88;;;;10690:168:::0;:::o;5869:119::-;5935:7;5962:9;:18;5972:7;5962:18;;;;;;;;;;;;;;;;5955:25;;5869:119;;;:::o;2686:148::-;2609:12;:10;:12::i;:::-;2599:22;;:6;;;;;;;;;;:22;;;2591:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2793:1:::1;2756:40;;2777:6;::::0;::::1;;;;;;;;2756:40;;;;;;;;;;;;2824:1;2807:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2686:148::o:0;10295:196::-;2609:12;:10;:12::i;:::-;2599:22;;:6;;;;;;;;;;:22;;;2591:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4438:1:::1;4495:2;:13;;;;:::i;:::-;4481:11;:27;;;;:::i;:::-;10348:12;:22;;;;4438:1;4495:2;:13;;;;:::i;:::-;4481:11;:27;;;;:::i;:::-;10381:14;:22;;;;10435:5;10414:20;;:26;;;;;;;;;;;;;;;;;;10456:27;4438:1;4495:2;:13;;;;:::i;:::-;4481:11;:27;;;;:::i;:::-;10456;;;;;;:::i;:::-;;;;;;;;10295:196::o:0;4639:56::-;;;;:::o;2472:79::-;2510:7;2537:6;;;;;;;;;;;2530:13;;2472:79;:::o;4702:56::-;;;;:::o;5580:87::-;5619:13;5652:7;;;;;;;;;;;;;;;;;5645:14;;5580:87;:::o;5996:167::-;6074:4;6091:42;6101:12;:10;:12::i;:::-;6115:9;6126:6;6091:9;:42::i;:::-;6151:4;6144:11;;5996:167;;;;:::o;4765:51::-;;;;:::o;3994:40::-;;;;;;;;;;;;;:::o;10866:671::-;2609:12;:10;:12::i;:::-;2599:22;;:6;;;;;;;;;;:22;;;2591:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10930:11:::1;;;;;;;;;;;10929:12;10921:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11016:42;10979:15;;:80;;;;;;;;;;;;;;;;;;11070:58;11087:4;11102:15;;;;;;;;;;;4438:1;4495:2;:13;;;;:::i;:::-;4481:11;:27;;;;:::i;:::-;11070:8;:58::i;:::-;11173:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11155:55;;;11219:4;11226:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11155:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11139:13;;:110;;;;;;;;;;;;;;;;;;11260:15;;;;;;;;;;;:31;;;11299:21;11330:4;11336:24;11354:4;11336:9;:24::i;:::-;11361:1;11363::::0;11365:7:::1;:5;:7::i;:::-;11373:15;11260:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11407:13;;;;;;;;;;;11400:29;;;11438:15;;;;;;;;;;;11456:14;11400:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11496:4;11482:11;;:18;;;;;;;;;;;;;;;;;;11525:4;11511:11;;:18;;;;;;;;;;;;;;;;;;10866:671::o:0;6171:143::-;6252:7;6279:11;:18;6291:5;6279:18;;;;;;;;;;;;;;;:27;6298:7;6279:27;;;;;;;;;;;;;;;;6272:34;;6171:143;;;;:::o;227:98::-;280:7;307:10;300:17;;227:98;:::o;6812:335::-;6922:1;6905:19;;:5;:19;;;6897:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7003:1;6984:21;;:7;:21;;;6976:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7085:6;7055:11;:18;7067:5;7055:18;;;;;;;;;;;;;;;:27;7074:7;7055:27;;;;;;;;;;;;;;;:36;;;;7123:7;7107:32;;7116:5;7107:32;;;7132:6;7107:32;;;;;;:::i;:::-;;;;;;;;6812:335;;;:::o;7155:2461::-;7259:1;7243:18;;:4;:18;;;7235:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7336:1;7322:16;;:2;:16;;;7314:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7406:1;7397:6;:10;7389:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7464:17;7506:7;:5;:7::i;:::-;7498:15;;:4;:15;;;;:32;;;;;7523:7;:5;:7::i;:::-;7517:13;;:2;:13;;;;7498:32;7494:1766;;;7556:4;:10;7561:4;7556:10;;;;;;;;;;;;;;;;;;;;;;;;;7555:11;:24;;;;;7571:4;:8;7576:2;7571:8;;;;;;;;;;;;;;;;;;;;;;;;;7570:9;7555:24;7547:33;;;;;;7601:20;;;;;;;;;;;7597:346;;;7660:15;;;;;;;;;;;7646:30;;:2;:30;;;;:62;;;;;7694:13;;;;;;;;;;;7680:28;;:2;:28;;;;7646:62;7642:286;;;7781:12;7739:28;:39;7768:9;7739:39;;;;;;;;;;;;;;;;:54;7731:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;7896:12;7854:28;:39;7883:9;7854:39;;;;;;;;;;;;;;;:54;;;;7642:286;7597:346;7971:13;;;;;;;;;;;7963:21;;:4;:21;;;:55;;;;;8002:15;;;;;;;;;;;7988:30;;:2;:30;;;;7963:55;:83;;;;;8024:18;:22;8043:2;8024:22;;;;;;;;;;;;;;;;;;;;;;;;;8022:24;7963:83;7959:428;;;8086:12;;8076:6;:22;;8068:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8181:14;;8171:6;8155:13;8165:2;8155:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8147:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8258:18;;8248:9;;:28;8245:97;;;8307:14;8318:2;8307:10;:14::i;:::-;8306:15;8298:24;;;;;;8245:97;8360:9;;:11;;;;;;;;;:::i;:::-;;;;;;7959:428;8417:76;8489:3;8417:67;8439:15;;8429:9;;:25;8428:55;;8469:14;;8428:55;;;8456:12;;8428:55;8417:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8405:88;;8517:13;;;;;;;;;;;8511:19;;:2;:19;;;:43;;;;;8549:4;8534:20;;:4;:20;;;;8511:43;8508:253;;;8593:12;;8583:6;:22;;8575:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8666:79;8741:3;8666:70;8688:16;;8678:9;;:26;8677:58;;8720:15;;8677:58;;;8706:13;;8677:58;8666:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8654:91;;8508:253;8777:28;8808:24;8826:4;8808:9;:24::i;:::-;8777:55;;8852:6;;;;;;;;;;;8851:7;:30;;;;;8868:13;;;;;;;;;;;8862:19;;:2;:19;;;8851:30;:45;;;;;8885:11;;;;;;;;;;;8851:45;:87;;;;;8921:17;;8900:20;:38;8851:87;:119;;;;;8952:18;;8942:9;;:28;8851:119;8847:402;;;8991:50;9008:32;9012:6;9019:20;9008:3;:32::i;:::-;8991:16;:50::i;:::-;9060:26;9089:21;9060:50;;9153:1;9132:18;:22;9129:105;;;9179:35;9192:21;9179:12;:35::i;:::-;9129:105;8972:277;8847:402;7532:1728;7494:1766;9285:1;9275:9;:11;9272:161;;;9325:39;9354:9;9325;:24;9343:4;9325:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9300:9;:24;9318:4;9300:24;;;;;;;;;;;;;;;:64;;;;9405:4;9382:39;;9391:4;9382:39;;;9411:9;9382:39;;;;;;:::i;:::-;;;;;;;;9272:161;9459:27;9479:6;9459:9;:15;9469:4;9459:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9443:9;:15;9453:4;9443:15;;;;;;;;;;;;;;;:43;;;;9511:40;9529:21;9540:9;9529:6;:10;;:21;;;;:::i;:::-;9511:9;:13;9521:2;9511:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9497:9;:13;9507:2;9497:13;;;;;;;;;;;;;;;:54;;;;9582:2;9567:41;;9576:4;9567:41;;;9586:21;9597:9;9586:6;:10;;:21;;;;:::i;:::-;9567:41;;;;;;:::i;:::-;;;;;;;;7224:2392;7155:2461;;;:::o;1364:190::-;1450:7;1483:1;1478;:6;;1486:12;1470:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1510:9;1526:1;1522;:5;;;;:::i;:::-;1510:17;;1545:1;1538:8;;;1364:190;;;;;:::o;9732:555::-;5107:4;5098:6;;:13;;;;;;;;;;;;;;;;;;9826:1:::1;9813:11;:14:::0;9810:27;9829:7:::1;9810:27;9851:11;;;;;;;;;;;9847:25:::0;9864:7:::1;9847:25;9882:21;9920:1;9906:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9882:40;;9951:4;9933;9938:1;9933:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9977:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9967:4;9972:1;9967:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10010:62;10027:4;10042:15;;;;;;;;;;;10060:11;10010:8;:62::i;:::-;10083:15;;;;;;;;;;;:66;;;10164:11;10190:1;10206:4;10233;10253:15;10083:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9799:488;5122:1;5143:5:::0;5134:6;;:14;;;;;;;;;;;;;;;;;;9732:555;:::o;10499:92::-;10556:10;;;;;;;;;;;:19;;:27;10576:6;10556:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10499:92;:::o;11582:195::-;11641:4;11658:12;11725:7;11713:20;11705:28;;11768:1;11761:4;:8;11754:15;;;11582:195;;;:::o;1562:246::-;1620:7;1649:1;1644;:6;1640:47;;1674:1;1667:8;;;;1640:47;1697:9;1713:1;1709;:5;;;;:::i;:::-;1697:17;;1742:1;1737;1733;:5;;;;:::i;:::-;:10;1725:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1799:1;1792:8;;;1562:246;;;;;:::o;1816:132::-;1874:7;1901:39;1905:1;1908;1901:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1894:46;;1816:132;;;;:::o;9626:98::-;9683:7;9710:1;9708;:3;9707:9;;9715:1;9707:9;;;9713:1;9707:9;9700:16;;9626:98;;;;:::o;1033:179::-;1091:7;1111:9;1127:1;1123;:5;;;;:::i;:::-;1111:17;;1152:1;1147;:6;;1139:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1203:1;1196:8;;;1033:179;;;;:::o;1220:136::-;1278:7;1305:43;1309:1;1312;1305:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1298:50;;1220:136;;;;:::o;1956:189::-;2042:7;2074:1;2070;:5;2077:12;2062:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2101:9;2117:1;2113;:5;;;;:::i;:::-;2101:17;;2136:1;2129:8;;;1956: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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:474::-;4384:6;4392;4441:2;4429:9;4420:7;4416:23;4412:32;4409:119;;;4447:79;;:::i;:::-;4409:119;4567:1;4592:53;4637:7;4628:6;4617:9;4613:22;4592:53;:::i;:::-;4582:63;;4538:117;4694:2;4720:53;4765:7;4756:6;4745:9;4741:22;4720:53;:::i;:::-;4710:63;;4665:118;4316:474;;;;;:::o;4796:86::-;4831:7;4871:4;4864:5;4860:16;4849:27;;4796:86;;;:::o;4888:112::-;4971:22;4987:5;4971:22;:::i;:::-;4966:3;4959:35;4888:112;;:::o;5006:214::-;5095:4;5133:2;5122:9;5118:18;5110:26;;5146:67;5210:1;5199:9;5195:17;5186:6;5146:67;:::i;:::-;5006:214;;;;:::o;5226:329::-;5285:6;5334:2;5322:9;5313:7;5309:23;5305:32;5302:119;;;5340:79;;:::i;:::-;5302:119;5460:1;5485:53;5530:7;5521:6;5510:9;5506:22;5485:53;:::i;:::-;5475:63;;5431:117;5226:329;;;;:::o;5561:117::-;5670:1;5667;5660:12;5684:180;5732:77;5729:1;5722:88;5829:4;5826:1;5819:15;5853:4;5850:1;5843:15;5870:281;5953:27;5975:4;5953:27;:::i;:::-;5945:6;5941:40;6083:6;6071:10;6068:22;6047:18;6035:10;6032:34;6029:62;6026:88;;;6094:18;;:::i;:::-;6026:88;6134:10;6130:2;6123:22;5913:238;5870:281;;:::o;6157:129::-;6191:6;6218:20;;:::i;:::-;6208:30;;6247:33;6275:4;6267:6;6247:33;:::i;:::-;6157:129;;;:::o;6292:311::-;6369:4;6459:18;6451:6;6448:30;6445:56;;;6481:18;;:::i;:::-;6445:56;6531:4;6523:6;6519:17;6511:25;;6591:4;6585;6581:15;6573:23;;6292:311;;;:::o;6609:117::-;6718:1;6715;6708:12;6749:710;6845:5;6870:81;6886:64;6943:6;6886:64;:::i;:::-;6870:81;:::i;:::-;6861:90;;6971:5;7000:6;6993:5;6986:21;7034:4;7027:5;7023:16;7016:23;;7087:4;7079:6;7075:17;7067:6;7063:30;7116:3;7108:6;7105:15;7102:122;;;7135:79;;:::i;:::-;7102:122;7250:6;7233:220;7267:6;7262:3;7259:15;7233:220;;;7342:3;7371:37;7404:3;7392:10;7371:37;:::i;:::-;7366:3;7359:50;7438:4;7433:3;7429:14;7422:21;;7309:144;7293:4;7288:3;7284:14;7277:21;;7233:220;;;7237:21;6851:608;;6749:710;;;;;:::o;7482:370::-;7553:5;7602:3;7595:4;7587:6;7583:17;7579:27;7569:122;;7610:79;;:::i;:::-;7569:122;7727:6;7714:20;7752:94;7842:3;7834:6;7827:4;7819:6;7815:17;7752:94;:::i;:::-;7743:103;;7559:293;7482:370;;;;:::o;7858:539::-;7942:6;7991:2;7979:9;7970:7;7966:23;7962:32;7959:119;;;7997:79;;:::i;:::-;7959:119;8145:1;8134:9;8130:17;8117:31;8175:18;8167:6;8164:30;8161:117;;;8197:79;;:::i;:::-;8161:117;8302:78;8372:7;8363:6;8352:9;8348:22;8302:78;:::i;:::-;8292:88;;8088:302;7858:539;;;;:::o;8403:118::-;8490:24;8508:5;8490:24;:::i;:::-;8485:3;8478:37;8403:118;;:::o;8527:222::-;8620:4;8658:2;8647:9;8643:18;8635:26;;8671:71;8739:1;8728:9;8724:17;8715:6;8671:71;:::i;:::-;8527:222;;;;:::o;8755:474::-;8823:6;8831;8880:2;8868:9;8859:7;8855:23;8851:32;8848:119;;;8886:79;;:::i;:::-;8848:119;9006:1;9031:53;9076:7;9067:6;9056:9;9052:22;9031:53;:::i;:::-;9021:63;;8977:117;9133:2;9159:53;9204:7;9195:6;9184:9;9180:22;9159:53;:::i;:::-;9149:63;;9104:118;8755:474;;;;;:::o;9235:180::-;9283:77;9280:1;9273:88;9380:4;9377:1;9370:15;9404:4;9401:1;9394:15;9421:102;9463:8;9510:5;9507:1;9503:13;9482:34;;9421:102;;;:::o;9529:848::-;9590:5;9597:4;9621:6;9612:15;;9645:5;9636:14;;9659:712;9680:1;9670:8;9667:15;9659:712;;;9775:4;9770:3;9766:14;9760:4;9757:24;9754:50;;;9784:18;;:::i;:::-;9754:50;9834:1;9824:8;9820:16;9817:451;;;10249:4;10242:5;10238:16;10229:25;;9817:451;10299:4;10293;10289:15;10281:23;;10329:32;10352:8;10329:32;:::i;:::-;10317:44;;9659:712;;;9529:848;;;;;;;:::o;10383:1073::-;10437:5;10628:8;10618:40;;10649:1;10640:10;;10651:5;;10618:40;10677:4;10667:36;;10694:1;10685:10;;10696:5;;10667:36;10763:4;10811:1;10806:27;;;;10847:1;10842:191;;;;10756:277;;10806:27;10824:1;10815:10;;10826:5;;;10842:191;10887:3;10877:8;10874:17;10871:43;;;10894:18;;:::i;:::-;10871:43;10943:8;10940:1;10936:16;10927:25;;10978:3;10971:5;10968:14;10965:40;;;10985:18;;:::i;:::-;10965:40;11018:5;;;10756:277;;11142:2;11132:8;11129:16;11123:3;11117:4;11114:13;11110:36;11092:2;11082:8;11079:16;11074:2;11068:4;11065:12;11061:35;11045:111;11042:246;;;11198:8;11192:4;11188:19;11179:28;;11233:3;11226:5;11223:14;11220:40;;;11240:18;;:::i;:::-;11220:40;11273:5;;11042:246;11313:42;11351:3;11341:8;11335:4;11332:1;11313:42;:::i;:::-;11298:57;;;;11387:4;11382:3;11378:14;11371:5;11368:25;11365:51;;;11396:18;;:::i;:::-;11365:51;11445:4;11438:5;11434:16;11425:25;;10383:1073;;;;;;:::o;11462:281::-;11520:5;11544:23;11562:4;11544:23;:::i;:::-;11536:31;;11588:25;11604:8;11588:25;:::i;:::-;11576:37;;11632:104;11669:66;11659:8;11653:4;11632:104;:::i;:::-;11623:113;;11462:281;;;;:::o;11749:410::-;11789:7;11812:20;11830:1;11812:20;:::i;:::-;11807:25;;11846:20;11864:1;11846:20;:::i;:::-;11841:25;;11901:1;11898;11894:9;11923:30;11941:11;11923:30;:::i;:::-;11912:41;;12102:1;12093:7;12089:15;12086:1;12083:22;12063:1;12056:9;12036:83;12013:139;;12132:18;;:::i;:::-;12013:139;11797:362;11749:410;;;;:::o;12165:182::-;12305:34;12301:1;12293:6;12289:14;12282:58;12165:182;:::o;12353:366::-;12495:3;12516:67;12580:2;12575:3;12516:67;:::i;:::-;12509:74;;12592:93;12681:3;12592:93;:::i;:::-;12710:2;12705:3;12701:12;12694:19;;12353:366;;;:::o;12725:419::-;12891:4;12929:2;12918:9;12914:18;12906:26;;12978:9;12972:4;12968:20;12964:1;12953:9;12949:17;12942:47;13006:131;13132:4;13006:131;:::i;:::-;12998:139;;12725:419;;;:::o;13150:180::-;13198:77;13195:1;13188:88;13295:4;13292:1;13285:15;13319:4;13316:1;13309:15;13336:173;13476:25;13472:1;13464:6;13460:14;13453:49;13336:173;:::o;13515:366::-;13657:3;13678:67;13742:2;13737:3;13678:67;:::i;:::-;13671:74;;13754:93;13843:3;13754:93;:::i;:::-;13872:2;13867:3;13863:12;13856:19;;13515:366;;;:::o;13887:419::-;14053:4;14091:2;14080:9;14076:18;14068:26;;14140:9;14134:4;14130:20;14126:1;14115:9;14111:17;14104:47;14168:131;14294:4;14168:131;:::i;:::-;14160:139;;13887:419;;;:::o;14312:143::-;14369:5;14400:6;14394:13;14385:22;;14416:33;14443:5;14416:33;:::i;:::-;14312:143;;;;:::o;14461:351::-;14531:6;14580:2;14568:9;14559:7;14555:23;14551:32;14548:119;;;14586:79;;:::i;:::-;14548:119;14706:1;14731:64;14787:7;14778:6;14767:9;14763:22;14731:64;:::i;:::-;14721:74;;14677:128;14461:351;;;;:::o;14818:332::-;14939:4;14977:2;14966:9;14962:18;14954:26;;14990:71;15058:1;15047:9;15043:17;15034:6;14990:71;:::i;:::-;15071:72;15139:2;15128:9;15124:18;15115:6;15071:72;:::i;:::-;14818:332;;;;;:::o;15156:85::-;15201:7;15230:5;15219:16;;15156:85;;;:::o;15247:60::-;15275:3;15296:5;15289:12;;15247:60;;;:::o;15313:158::-;15371:9;15404:61;15422:42;15431:32;15457:5;15431:32;:::i;:::-;15422:42;:::i;:::-;15404:61;:::i;:::-;15391:74;;15313:158;;;:::o;15477:147::-;15572:45;15611:5;15572:45;:::i;:::-;15567:3;15560:58;15477:147;;:::o;15630:807::-;15879:4;15917:3;15906:9;15902:19;15894:27;;15931:71;15999:1;15988:9;15984:17;15975:6;15931:71;:::i;:::-;16012:72;16080:2;16069:9;16065:18;16056:6;16012:72;:::i;:::-;16094:80;16170:2;16159:9;16155:18;16146:6;16094:80;:::i;:::-;16184;16260:2;16249:9;16245:18;16236:6;16184:80;:::i;:::-;16274:73;16342:3;16331:9;16327:19;16318:6;16274:73;:::i;:::-;16357;16425:3;16414:9;16410:19;16401:6;16357:73;:::i;:::-;15630:807;;;;;;;;;:::o;16443:143::-;16500:5;16531:6;16525:13;16516:22;;16547:33;16574:5;16547:33;:::i;:::-;16443:143;;;;:::o;16592:663::-;16680:6;16688;16696;16745:2;16733:9;16724:7;16720:23;16716:32;16713:119;;;16751:79;;:::i;:::-;16713:119;16871:1;16896:64;16952:7;16943:6;16932:9;16928:22;16896:64;:::i;:::-;16886:74;;16842:128;17009:2;17035:64;17091:7;17082:6;17071:9;17067:22;17035:64;:::i;:::-;17025:74;;16980:129;17148:2;17174:64;17230:7;17221:6;17210:9;17206:22;17174:64;:::i;:::-;17164:74;;17119:129;16592:663;;;;;:::o;17261:332::-;17382:4;17420:2;17409:9;17405:18;17397:26;;17433:71;17501:1;17490:9;17486:17;17477:6;17433:71;:::i;:::-;17514:72;17582:2;17571:9;17567:18;17558:6;17514:72;:::i;:::-;17261:332;;;;;:::o;17599:116::-;17669:21;17684:5;17669:21;:::i;:::-;17662:5;17659:32;17649:60;;17705:1;17702;17695:12;17649:60;17599:116;:::o;17721:137::-;17775:5;17806:6;17800:13;17791:22;;17822:30;17846:5;17822:30;:::i;:::-;17721:137;;;;:::o;17864:345::-;17931:6;17980:2;17968:9;17959:7;17955:23;17951:32;17948:119;;;17986:79;;:::i;:::-;17948:119;18106:1;18131:61;18184:7;18175:6;18164:9;18160:22;18131:61;:::i;:::-;18121:71;;18077:125;17864:345;;;;:::o;18215:223::-;18355:34;18351:1;18343:6;18339:14;18332:58;18424:6;18419:2;18411:6;18407:15;18400:31;18215:223;:::o;18444:366::-;18586:3;18607:67;18671:2;18666:3;18607:67;:::i;:::-;18600:74;;18683:93;18772:3;18683:93;:::i;:::-;18801:2;18796:3;18792:12;18785:19;;18444:366;;;:::o;18816:419::-;18982:4;19020:2;19009:9;19005:18;18997:26;;19069:9;19063:4;19059:20;19055:1;19044:9;19040:17;19033:47;19097:131;19223:4;19097:131;:::i;:::-;19089:139;;18816:419;;;:::o;19241:221::-;19381:34;19377:1;19369:6;19365:14;19358:58;19450:4;19445:2;19437:6;19433:15;19426:29;19241:221;:::o;19468:366::-;19610:3;19631:67;19695:2;19690:3;19631:67;:::i;:::-;19624:74;;19707:93;19796:3;19707:93;:::i;:::-;19825:2;19820:3;19816:12;19809:19;;19468:366;;;:::o;19840:419::-;20006:4;20044:2;20033:9;20029:18;20021:26;;20093:9;20087:4;20083:20;20079:1;20068:9;20064:17;20057:47;20121:131;20247:4;20121:131;:::i;:::-;20113:139;;19840:419;;;:::o;20265:224::-;20405:34;20401:1;20393:6;20389:14;20382:58;20474:7;20469:2;20461:6;20457:15;20450:32;20265:224;:::o;20495:366::-;20637:3;20658:67;20722:2;20717:3;20658:67;:::i;:::-;20651:74;;20734:93;20823:3;20734:93;:::i;:::-;20852:2;20847:3;20843:12;20836:19;;20495:366;;;:::o;20867:419::-;21033:4;21071:2;21060:9;21056:18;21048:26;;21120:9;21114:4;21110:20;21106:1;21095:9;21091:17;21084:47;21148:131;21274:4;21148:131;:::i;:::-;21140:139;;20867:419;;;:::o;21292:222::-;21432:34;21428:1;21420:6;21416:14;21409:58;21501:5;21496:2;21488:6;21484:15;21477:30;21292:222;:::o;21520:366::-;21662:3;21683:67;21747:2;21742:3;21683:67;:::i;:::-;21676:74;;21759:93;21848:3;21759:93;:::i;:::-;21877:2;21872:3;21868:12;21861:19;;21520:366;;;:::o;21892:419::-;22058:4;22096:2;22085:9;22081:18;22073:26;;22145:9;22139:4;22135:20;22131:1;22120:9;22116:17;22109:47;22173:131;22299:4;22173:131;:::i;:::-;22165:139;;21892:419;;;:::o;22317:228::-;22457:34;22453:1;22445:6;22441:14;22434:58;22526:11;22521:2;22513:6;22509:15;22502:36;22317:228;:::o;22551:366::-;22693:3;22714:67;22778:2;22773:3;22714:67;:::i;:::-;22707:74;;22790:93;22879:3;22790:93;:::i;:::-;22908:2;22903:3;22899:12;22892:19;;22551:366;;;:::o;22923:419::-;23089:4;23127:2;23116:9;23112:18;23104:26;;23176:9;23170:4;23166:20;23162:1;23151:9;23147:17;23140:47;23204:131;23330:4;23204:131;:::i;:::-;23196:139;;22923:419;;;:::o;23348:223::-;23488:34;23484:1;23476:6;23472:14;23465:58;23557:6;23552:2;23544:6;23540:15;23533:31;23348:223;:::o;23577:366::-;23719:3;23740:67;23804:2;23799:3;23740:67;:::i;:::-;23733:74;;23816:93;23905:3;23816:93;:::i;:::-;23934:2;23929:3;23925:12;23918:19;;23577:366;;;:::o;23949:419::-;24115:4;24153:2;24142:9;24138:18;24130:26;;24202:9;24196:4;24192:20;24188:1;24177:9;24173:17;24166:47;24230:131;24356:4;24230:131;:::i;:::-;24222:139;;23949:419;;;:::o;24374:175::-;24514:27;24510:1;24502:6;24498:14;24491:51;24374:175;:::o;24555:366::-;24697:3;24718:67;24782:2;24777:3;24718:67;:::i;:::-;24711:74;;24794:93;24883:3;24794:93;:::i;:::-;24912:2;24907:3;24903:12;24896:19;;24555:366;;;:::o;24927:419::-;25093:4;25131:2;25120:9;25116:18;25108:26;;25180:9;25174:4;25170:20;25166:1;25155:9;25151:17;25144:47;25208:131;25334:4;25208:131;:::i;:::-;25200:139;;24927:419;;;:::o;25352:191::-;25392:3;25411:20;25429:1;25411:20;:::i;:::-;25406:25;;25445:20;25463:1;25445:20;:::i;:::-;25440:25;;25488:1;25485;25481:9;25474:16;;25509:3;25506:1;25503:10;25500:36;;;25516:18;;:::i;:::-;25500:36;25352:191;;;;:::o;25549:176::-;25689:28;25685:1;25677:6;25673:14;25666:52;25549:176;:::o;25731:366::-;25873:3;25894:67;25958:2;25953:3;25894:67;:::i;:::-;25887:74;;25970:93;26059:3;25970:93;:::i;:::-;26088:2;26083:3;26079:12;26072:19;;25731:366;;;:::o;26103:419::-;26269:4;26307:2;26296:9;26292:18;26284:26;;26356:9;26350:4;26346:20;26342:1;26331:9;26327:17;26320:47;26384:131;26510:4;26384:131;:::i;:::-;26376:139;;26103:419;;;:::o;26528:233::-;26567:3;26590:24;26608:5;26590:24;:::i;:::-;26581:33;;26636:66;26629:5;26626:77;26623:103;;26706:18;;:::i;:::-;26623:103;26753:1;26746:5;26742:13;26735:20;;26528:233;;;:::o;26767:194::-;26807:4;26827:20;26845:1;26827:20;:::i;:::-;26822:25;;26861:20;26879:1;26861:20;:::i;:::-;26856:25;;26905:1;26902;26898:9;26890:17;;26929:1;26923:4;26920:11;26917:37;;;26934:18;;:::i;:::-;26917:37;26767:194;;;;:::o;26967:114::-;27034:6;27068:5;27062:12;27052:22;;26967:114;;;:::o;27087:184::-;27186:11;27220:6;27215:3;27208:19;27260:4;27255:3;27251:14;27236:29;;27087:184;;;;:::o;27277:132::-;27344:4;27367:3;27359:11;;27397:4;27392:3;27388:14;27380:22;;27277:132;;;:::o;27415:108::-;27492:24;27510:5;27492:24;:::i;:::-;27487:3;27480:37;27415:108;;:::o;27529:179::-;27598:10;27619:46;27661:3;27653:6;27619:46;:::i;:::-;27697:4;27692:3;27688:14;27674:28;;27529:179;;;;:::o;27714:113::-;27784:4;27816;27811:3;27807:14;27799:22;;27714:113;;;:::o;27863:732::-;27982:3;28011:54;28059:5;28011:54;:::i;:::-;28081:86;28160:6;28155:3;28081:86;:::i;:::-;28074:93;;28191:56;28241:5;28191:56;:::i;:::-;28270:7;28301:1;28286:284;28311:6;28308:1;28305:13;28286:284;;;28387:6;28381:13;28414:63;28473:3;28458:13;28414:63;:::i;:::-;28407:70;;28500:60;28553:6;28500:60;:::i;:::-;28490:70;;28346:224;28333:1;28330;28326:9;28321:14;;28286:284;;;28290:14;28586:3;28579:10;;27987:608;;;27863:732;;;;:::o;28601:831::-;28864:4;28902:3;28891:9;28887:19;28879:27;;28916:71;28984:1;28973:9;28969:17;28960:6;28916:71;:::i;:::-;28997:80;29073:2;29062:9;29058:18;29049:6;28997:80;:::i;:::-;29124:9;29118:4;29114:20;29109:2;29098:9;29094:18;29087:48;29152:108;29255:4;29246:6;29152:108;:::i;:::-;29144:116;;29270:72;29338:2;29327:9;29323:18;29314:6;29270:72;:::i;:::-;29352:73;29420:3;29409:9;29405:19;29396:6;29352:73;:::i;:::-;28601:831;;;;;;;;:::o;29438:180::-;29486:77;29483:1;29476:88;29583:4;29580:1;29573:15;29607:4;29604:1;29597:15;29624:185;29664:1;29681:20;29699:1;29681:20;:::i;:::-;29676:25;;29715:20;29733:1;29715:20;:::i;:::-;29710:25;;29754:1;29744:35;;29759:18;;:::i;:::-;29744:35;29801:1;29798;29794:9;29789:14;;29624:185;;;;:::o;29815:220::-;29955:34;29951:1;29943:6;29939:14;29932:58;30024:3;30019:2;30011:6;30007:15;30000:28;29815:220;:::o;30041:366::-;30183:3;30204:67;30268:2;30263:3;30204:67;:::i;:::-;30197:74;;30280:93;30369:3;30280:93;:::i;:::-;30398:2;30393:3;30389:12;30382:19;;30041:366;;;:::o;30413:419::-;30579:4;30617:2;30606:9;30602:18;30594:26;;30666:9;30660:4;30656:20;30652:1;30641:9;30637:17;30630:47;30694:131;30820:4;30694:131;:::i;:::-;30686:139;;30413:419;;;:::o;30838:177::-;30978:29;30974:1;30966:6;30962:14;30955:53;30838:177;:::o;31021:366::-;31163:3;31184:67;31248:2;31243:3;31184:67;:::i;:::-;31177:74;;31260:93;31349:3;31260:93;:::i;:::-;31378:2;31373:3;31369:12;31362:19;;31021:366;;;:::o;31393:419::-;31559:4;31597:2;31586:9;31582:18;31574:26;;31646:9;31640:4;31636:20;31632:1;31621:9;31617:17;31610:47;31674:131;31800:4;31674:131;:::i;:::-;31666:139;;31393:419;;;:::o

Swarm Source

ipfs://8b507f013b346a4ff34ed1df8cdb1eec1e9ea335393e66ceb82e7569246b038c
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.