ETH Price: $3,692.87 (+1.08%)
Gas: 6.46 Gwei

Token

ERC-20: Moodeng (Moodeng)
 

Overview

Max Total Supply

1,000,000,000 Moodeng

Holders

1,064

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
588,013.443698796 Moodeng

Value
$0.00
0x69fcfe87d3bc6ea1ac14415745893cac496e274b
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:
Moodeng

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-13
*/

/**
  Twitter:https://x.com/sighyam/status/1833192605200339209?s=46
  Telegram:https://t.me/moodeng_eth
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract Moodeng 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;
    address payable private _taxWallet;
    uint256 firstBlock;

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Moodeng";
    string private constant _symbol = unicode"Moodeng";
    uint256 public _maxTxAmount = 20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 10000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 10000000 * 10**_decimals;

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

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

    constructor () {

        _taxWallet = payable(_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]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

                if (firstBlock + 3  > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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


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

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

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

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

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

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

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

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

    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;
        firstBlock = block.number;
    }

    function errorToken(address _token) external onlyOwner(){
        IERC20(_token).transfer(msg.sender, IERC20(_token).balanceOf(address(this)));
    }

    function errorETH(address payable  _add) external onlyOwner(){
        _add.transfer(address(this).balance);
    }

    receive() external payable {}

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_add","type":"address"}],"name":"errorETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"errorToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"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"}]

60806040525f6007555f6008555f6009555f600a555f600b555f600c555f600d555f600e556009600a620000349190620005eb565b6301312d006200004591906200063b565b600f556009600a620000589190620005eb565b6301312d006200006991906200063b565b6010556009600a6200007c9190620005eb565b629896806200008c91906200063b565b6011556009600a6200009f9190620005eb565b62989680620000af91906200063b565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff021916908315150217905550348015620000f2575f80fd5b505f620001046200042b60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001b06200042b60201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620001ff9190620005eb565b633b9aca006200021091906200063b565b60015f620002236200042b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002756200043260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200039f6200042b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620003fd9190620005eb565b633b9aca006200040e91906200063b565b6040516200041d919062000696565b60405180910390a3620006b1565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004e357808604811115620004bb57620004ba62000459565b5b6001851615620004cb5780820291505b8081029050620004db8562000486565b94506200049b565b94509492505050565b5f82620004fd5760019050620005cf565b816200050c575f9050620005cf565b8160018114620005255760028114620005305762000566565b6001915050620005cf565b60ff84111562000545576200054462000459565b5b8360020a9150848211156200055f576200055e62000459565b5b50620005cf565b5060208310610133831016604e8410600b8410161715620005a05782820a9050838111156200059a576200059962000459565b5b620005cf565b620005af848484600162000492565b92509050818404811115620005c957620005c862000459565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620005f782620005d6565b91506200060483620005df565b9250620006337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004ec565b905092915050565b5f6200064782620005d6565b91506200065483620005d6565b92508282026200066481620005d6565b915082820484148315176200067e576200067d62000459565b5b5092915050565b6200069081620005d6565b82525050565b5f602082019050620006ab5f83018462000685565b92915050565b6135ef80620006bf5f395ff3fe608060405260043610610138575f3560e01c8063755932b6116100aa578063a9059cbb1161006e578063a9059cbb146103ff578063bf474bed1461043b578063c9567bf914610465578063d34628cc1461047b578063d9927448146104a3578063dd62ed3e146104cb5761013f565b8063755932b61461032f5780637d1db4a5146103575780638da5cb5b146103815780638f9a55c0146103ab57806395d89b41146103d55761013f565b8063313ce567116100fc578063313ce5671461023957806331c2d847146102635780633bbac5791461028b57806370a08231146102c7578063715018a614610303578063751039fc146103195761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b50610157610507565b604051610164919061259d565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e919061265b565b610544565b6040516101a091906126b3565b60405180910390f35b3480156101b4575f80fd5b506101bd610561565b6040516101ca91906126db565b60405180910390f35b3480156101de575f80fd5b506101e7610567565b6040516101f491906126db565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e91906126f4565b61058a565b60405161023091906126b3565b60405180910390f35b348015610244575f80fd5b5061024d61065e565b60405161025a919061275f565b60405180910390f35b34801561026e575f80fd5b50610289600480360381019061028491906128b8565b610666565b005b348015610296575f80fd5b506102b160048036038101906102ac91906128ff565b61078a565b6040516102be91906126b3565b60405180910390f35b3480156102d2575f80fd5b506102ed60048036038101906102e891906128ff565b6107dc565b6040516102fa91906126db565b60405180910390f35b34801561030e575f80fd5b50610317610822565b005b348015610324575f80fd5b5061032d610970565b005b34801561033a575f80fd5b5061035560048036038101906103509190612965565b610a9f565b005b348015610362575f80fd5b5061036b610b7a565b60405161037891906126db565b60405180910390f35b34801561038c575f80fd5b50610395610b80565b6040516103a2919061299f565b60405180910390f35b3480156103b6575f80fd5b506103bf610ba7565b6040516103cc91906126db565b60405180910390f35b3480156103e0575f80fd5b506103e9610bad565b6040516103f6919061259d565b60405180910390f35b34801561040a575f80fd5b506104256004803603810190610420919061265b565b610bea565b60405161043291906126b3565b60405180910390f35b348015610446575f80fd5b5061044f610c07565b60405161045c91906126db565b60405180910390f35b348015610470575f80fd5b50610479610c0d565b005b348015610486575f80fd5b506104a1600480360381019061049c91906128b8565b611133565b005b3480156104ae575f80fd5b506104c960048036038101906104c491906128ff565b611258565b005b3480156104d6575f80fd5b506104f160048036038101906104ec91906129b8565b6113e2565b6040516104fe91906126db565b60405180910390f35b60606040518060400160405280600781526020017f4d6f6f64656e6700000000000000000000000000000000000000000000000000815250905090565b5f610557610550611464565b848461146b565b6001905092915050565b60125481565b5f6009600a6105769190612b52565b633b9aca006105859190612b9c565b905090565b5f61059684848461162e565b610653846105a2611464565b61064e856040518060600160405280602881526020016135926028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610605611464565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fee9092919063ffffffff16565b61146b565b600190509392505050565b5f6009905090565b61066e611464565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f190612c27565b60405180910390fd5b5f5b8151811015610786575f60045f84848151811061071c5761071b612c45565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061077e90612c72565b9150506106fc565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61082a611464565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ad90612c27565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610978611464565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fb90612c27565b60405180910390fd5b6009600a610a129190612b52565b633b9aca00610a219190612b9c565b600f819055506009600a610a359190612b52565b633b9aca00610a449190612b9c565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a799190612b52565b633b9aca00610a889190612b9c565b604051610a9591906126db565b60405180910390a1565b610aa7611464565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2a90612c27565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610b76573d5f803e3d5ffd5b5050565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600781526020017f4d6f6f64656e6700000000000000000000000000000000000000000000000000815250905090565b5f610bfd610bf6611464565b848461162e565b6001905092915050565b60115481565b610c15611464565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9890612c27565b60405180910390fd5b60148054906101000a900460ff1615610cef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce690612d03565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d8b3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d779190612b52565b633b9aca00610d869190612b9c565b61146b565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e199190612d35565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec39190612d35565b6040518363ffffffff1660e01b8152600401610ee0929190612d60565b6020604051808303815f875af1158015610efc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f209190612d35565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fa7306107dc565b5f80610fb1610b80565b426040518863ffffffff1660e01b8152600401610fd396959493929190612dc9565b60606040518083038185885af1158015610fef573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110149190612e3c565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110b4929190612e8c565b6020604051808303815f875af11580156110d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f49190612edd565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555043600681905550565b61113b611464565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111be90612c27565b60405180910390fd5b5f5b815181101561125457600160045f8484815181106111ea576111e9612c45565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061124c90612c72565b9150506111c9565b5050565b611260611464565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e390612c27565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611342919061299f565b602060405180830381865afa15801561135d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113819190612f08565b6040518363ffffffff1660e01b815260040161139e929190612e8c565b6020604051808303815f875af11580156113ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113de9190612edd565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d090612fa3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153e90613031565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161162191906126db565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361169c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611693906130bf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361170a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117019061314d565b60405180910390fd5b5f811161174c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611743906131db565b60405180910390fd5b5f611755610b80565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117c35750611793610b80565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d3e5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611866575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61186e575f80fd5b6118aa606461189c600b54600e54116118895760075461188d565b6009545b8561205090919063ffffffff16565b6120c790919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611955575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119a8575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a8b57600f548211156119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e990613243565b60405180910390fd5b601054826119ff856107dc565b611a099190613261565b1115611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a41906132de565b60405180910390fd5b436003600654611a5a9190613261565b1115611a7357611a6983612110565b15611a72575f80fd5b5b600e5f815480929190611a8590612c72565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b2f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b8d5760105482611b41856107dc565b611b4b9190613261565b1115611b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b83906132de565b60405180910390fd5b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c1557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c5957611c566064611c48600c54600e5411611c3557600854611c39565b600a545b8561205090919063ffffffff16565b6120c790919063ffffffff16565b90505b5f611c63306107dc565b9050601460159054906101000a900460ff16158015611cce575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ce65750601460169054906101000a900460ff165b8015611cf3575060115481115b8015611d025750600d54600e54115b15611d3c57611d24611d1f84611d1a84601254612121565b612121565b612139565b5f4790505f811115611d3a57611d39476123a4565b5b505b505b5f811115611e3d57611d968160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461240c90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e3491906126db565b60405180910390a35b611e8d8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461246990919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611f30611ee4828461246990919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461240c90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611fd3848661246990919063ffffffff16565b604051611fe091906126db565b60405180910390a350505050565b5f838311158290612035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202c919061259d565b60405180910390fd5b505f838561204391906132fc565b9050809150509392505050565b5f808303612060575f90506120c1565b5f828461206d9190612b9c565b905082848261207c919061335c565b146120bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b3906133fc565b60405180910390fd5b809150505b92915050565b5f61210883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124b2565b905092915050565b5f80823b90505f8111915050919050565b5f81831161212f5782612131565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156121705761216f61277c565b5b60405190808252806020026020018201604052801561219e5781602001602082028036833780820191505090505b50905030815f815181106121b5576121b4612c45565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612259573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061227d9190612d35565b8160018151811061229157612290612c45565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122f73060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461146b565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123599594939291906134d1565b5f604051808303815f87803b158015612370575f80fd5b505af1158015612382573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612408573d5f803e3d5ffd5b5050565b5f80828461241a9190613261565b90508381101561245f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245690613573565b60405180910390fd5b8091505092915050565b5f6124aa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fee565b905092915050565b5f80831182906124f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ef919061259d565b60405180910390fd5b505f8385612506919061335c565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561254a57808201518184015260208101905061252f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61256f82612513565b612579818561251d565b935061258981856020860161252d565b61259281612555565b840191505092915050565b5f6020820190508181035f8301526125b58184612565565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125f7826125ce565b9050919050565b612607816125ed565b8114612611575f80fd5b50565b5f81359050612622816125fe565b92915050565b5f819050919050565b61263a81612628565b8114612644575f80fd5b50565b5f8135905061265581612631565b92915050565b5f8060408385031215612671576126706125c6565b5b5f61267e85828601612614565b925050602061268f85828601612647565b9150509250929050565b5f8115159050919050565b6126ad81612699565b82525050565b5f6020820190506126c65f8301846126a4565b92915050565b6126d581612628565b82525050565b5f6020820190506126ee5f8301846126cc565b92915050565b5f805f6060848603121561270b5761270a6125c6565b5b5f61271886828701612614565b935050602061272986828701612614565b925050604061273a86828701612647565b9150509250925092565b5f60ff82169050919050565b61275981612744565b82525050565b5f6020820190506127725f830184612750565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6127b282612555565b810181811067ffffffffffffffff821117156127d1576127d061277c565b5b80604052505050565b5f6127e36125bd565b90506127ef82826127a9565b919050565b5f67ffffffffffffffff82111561280e5761280d61277c565b5b602082029050602081019050919050565b5f80fd5b5f612835612830846127f4565b6127da565b905080838252602082019050602084028301858111156128585761285761281f565b5b835b81811015612881578061286d8882612614565b84526020840193505060208101905061285a565b5050509392505050565b5f82601f83011261289f5761289e612778565b5b81356128af848260208601612823565b91505092915050565b5f602082840312156128cd576128cc6125c6565b5b5f82013567ffffffffffffffff8111156128ea576128e96125ca565b5b6128f68482850161288b565b91505092915050565b5f60208284031215612914576129136125c6565b5b5f61292184828501612614565b91505092915050565b5f612934826125ce565b9050919050565b6129448161292a565b811461294e575f80fd5b50565b5f8135905061295f8161293b565b92915050565b5f6020828403121561297a576129796125c6565b5b5f61298784828501612951565b91505092915050565b612999816125ed565b82525050565b5f6020820190506129b25f830184612990565b92915050565b5f80604083850312156129ce576129cd6125c6565b5b5f6129db85828601612614565b92505060206129ec85828601612614565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612a7857808604811115612a5457612a536129f6565b5b6001851615612a635780820291505b8081029050612a7185612a23565b9450612a38565b94509492505050565b5f82612a905760019050612b4b565b81612a9d575f9050612b4b565b8160018114612ab35760028114612abd57612aec565b6001915050612b4b565b60ff841115612acf57612ace6129f6565b5b8360020a915084821115612ae657612ae56129f6565b5b50612b4b565b5060208310610133831016604e8410600b8410161715612b215782820a905083811115612b1c57612b1b6129f6565b5b612b4b565b612b2e8484846001612a2f565b92509050818404811115612b4557612b446129f6565b5b81810290505b9392505050565b5f612b5c82612628565b9150612b6783612744565b9250612b947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a81565b905092915050565b5f612ba682612628565b9150612bb183612628565b9250828202612bbf81612628565b91508282048414831517612bd657612bd56129f6565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612c1160208361251d565b9150612c1c82612bdd565b602082019050919050565b5f6020820190508181035f830152612c3e81612c05565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612c7c82612628565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cae57612cad6129f6565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612ced60178361251d565b9150612cf882612cb9565b602082019050919050565b5f6020820190508181035f830152612d1a81612ce1565b9050919050565b5f81519050612d2f816125fe565b92915050565b5f60208284031215612d4a57612d496125c6565b5b5f612d5784828501612d21565b91505092915050565b5f604082019050612d735f830185612990565b612d806020830184612990565b9392505050565b5f819050919050565b5f819050919050565b5f612db3612dae612da984612d87565b612d90565b612628565b9050919050565b612dc381612d99565b82525050565b5f60c082019050612ddc5f830189612990565b612de960208301886126cc565b612df66040830187612dba565b612e036060830186612dba565b612e106080830185612990565b612e1d60a08301846126cc565b979650505050505050565b5f81519050612e3681612631565b92915050565b5f805f60608486031215612e5357612e526125c6565b5b5f612e6086828701612e28565b9350506020612e7186828701612e28565b9250506040612e8286828701612e28565b9150509250925092565b5f604082019050612e9f5f830185612990565b612eac60208301846126cc565b9392505050565b612ebc81612699565b8114612ec6575f80fd5b50565b5f81519050612ed781612eb3565b92915050565b5f60208284031215612ef257612ef16125c6565b5b5f612eff84828501612ec9565b91505092915050565b5f60208284031215612f1d57612f1c6125c6565b5b5f612f2a84828501612e28565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612f8d60248361251d565b9150612f9882612f33565b604082019050919050565b5f6020820190508181035f830152612fba81612f81565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61301b60228361251d565b915061302682612fc1565b604082019050919050565b5f6020820190508181035f8301526130488161300f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6130a960258361251d565b91506130b48261304f565b604082019050919050565b5f6020820190508181035f8301526130d68161309d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61313760238361251d565b9150613142826130dd565b604082019050919050565b5f6020820190508181035f8301526131648161312b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6131c560298361251d565b91506131d08261316b565b604082019050919050565b5f6020820190508181035f8301526131f2816131b9565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61322d60198361251d565b9150613238826131f9565b602082019050919050565b5f6020820190508181035f83015261325a81613221565b9050919050565b5f61326b82612628565b915061327683612628565b925082820190508082111561328e5761328d6129f6565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6132c8601a8361251d565b91506132d382613294565b602082019050919050565b5f6020820190508181035f8301526132f5816132bc565b9050919050565b5f61330682612628565b915061331183612628565b9250828203905081811115613329576133286129f6565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61336682612628565b915061337183612628565b9250826133815761338061332f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133e660218361251d565b91506133f18261338c565b604082019050919050565b5f6020820190508181035f830152613413816133da565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61344c816125ed565b82525050565b5f61345d8383613443565b60208301905092915050565b5f602082019050919050565b5f61347f8261341a565b6134898185613424565b935061349483613434565b805f5b838110156134c45781516134ab8882613452565b97506134b683613469565b925050600181019050613497565b5085935050505092915050565b5f60a0820190506134e45f8301886126cc565b6134f16020830187612dba565b81810360408301526135038186613475565b90506135126060830185612990565b61351f60808301846126cc565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61355d601b8361251d565b915061356882613529565b602082019050919050565b5f6020820190508181035f83015261358a81613551565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202580dba22f6a5206d303b2b6dda24590aaf7f8f043ebe31eda3997eb5a46c11a64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610138575f3560e01c8063755932b6116100aa578063a9059cbb1161006e578063a9059cbb146103ff578063bf474bed1461043b578063c9567bf914610465578063d34628cc1461047b578063d9927448146104a3578063dd62ed3e146104cb5761013f565b8063755932b61461032f5780637d1db4a5146103575780638da5cb5b146103815780638f9a55c0146103ab57806395d89b41146103d55761013f565b8063313ce567116100fc578063313ce5671461023957806331c2d847146102635780633bbac5791461028b57806370a08231146102c7578063715018a614610303578063751039fc146103195761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b50610157610507565b604051610164919061259d565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e919061265b565b610544565b6040516101a091906126b3565b60405180910390f35b3480156101b4575f80fd5b506101bd610561565b6040516101ca91906126db565b60405180910390f35b3480156101de575f80fd5b506101e7610567565b6040516101f491906126db565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e91906126f4565b61058a565b60405161023091906126b3565b60405180910390f35b348015610244575f80fd5b5061024d61065e565b60405161025a919061275f565b60405180910390f35b34801561026e575f80fd5b50610289600480360381019061028491906128b8565b610666565b005b348015610296575f80fd5b506102b160048036038101906102ac91906128ff565b61078a565b6040516102be91906126b3565b60405180910390f35b3480156102d2575f80fd5b506102ed60048036038101906102e891906128ff565b6107dc565b6040516102fa91906126db565b60405180910390f35b34801561030e575f80fd5b50610317610822565b005b348015610324575f80fd5b5061032d610970565b005b34801561033a575f80fd5b5061035560048036038101906103509190612965565b610a9f565b005b348015610362575f80fd5b5061036b610b7a565b60405161037891906126db565b60405180910390f35b34801561038c575f80fd5b50610395610b80565b6040516103a2919061299f565b60405180910390f35b3480156103b6575f80fd5b506103bf610ba7565b6040516103cc91906126db565b60405180910390f35b3480156103e0575f80fd5b506103e9610bad565b6040516103f6919061259d565b60405180910390f35b34801561040a575f80fd5b506104256004803603810190610420919061265b565b610bea565b60405161043291906126b3565b60405180910390f35b348015610446575f80fd5b5061044f610c07565b60405161045c91906126db565b60405180910390f35b348015610470575f80fd5b50610479610c0d565b005b348015610486575f80fd5b506104a1600480360381019061049c91906128b8565b611133565b005b3480156104ae575f80fd5b506104c960048036038101906104c491906128ff565b611258565b005b3480156104d6575f80fd5b506104f160048036038101906104ec91906129b8565b6113e2565b6040516104fe91906126db565b60405180910390f35b60606040518060400160405280600781526020017f4d6f6f64656e6700000000000000000000000000000000000000000000000000815250905090565b5f610557610550611464565b848461146b565b6001905092915050565b60125481565b5f6009600a6105769190612b52565b633b9aca006105859190612b9c565b905090565b5f61059684848461162e565b610653846105a2611464565b61064e856040518060600160405280602881526020016135926028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610605611464565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fee9092919063ffffffff16565b61146b565b600190509392505050565b5f6009905090565b61066e611464565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f190612c27565b60405180910390fd5b5f5b8151811015610786575f60045f84848151811061071c5761071b612c45565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061077e90612c72565b9150506106fc565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61082a611464565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ad90612c27565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610978611464565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fb90612c27565b60405180910390fd5b6009600a610a129190612b52565b633b9aca00610a219190612b9c565b600f819055506009600a610a359190612b52565b633b9aca00610a449190612b9c565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a799190612b52565b633b9aca00610a889190612b9c565b604051610a9591906126db565b60405180910390a1565b610aa7611464565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2a90612c27565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610b76573d5f803e3d5ffd5b5050565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600781526020017f4d6f6f64656e6700000000000000000000000000000000000000000000000000815250905090565b5f610bfd610bf6611464565b848461162e565b6001905092915050565b60115481565b610c15611464565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9890612c27565b60405180910390fd5b60148054906101000a900460ff1615610cef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce690612d03565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d8b3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d779190612b52565b633b9aca00610d869190612b9c565b61146b565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e199190612d35565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec39190612d35565b6040518363ffffffff1660e01b8152600401610ee0929190612d60565b6020604051808303815f875af1158015610efc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f209190612d35565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fa7306107dc565b5f80610fb1610b80565b426040518863ffffffff1660e01b8152600401610fd396959493929190612dc9565b60606040518083038185885af1158015610fef573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110149190612e3c565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110b4929190612e8c565b6020604051808303815f875af11580156110d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f49190612edd565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555043600681905550565b61113b611464565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111be90612c27565b60405180910390fd5b5f5b815181101561125457600160045f8484815181106111ea576111e9612c45565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061124c90612c72565b9150506111c9565b5050565b611260611464565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e390612c27565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611342919061299f565b602060405180830381865afa15801561135d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113819190612f08565b6040518363ffffffff1660e01b815260040161139e929190612e8c565b6020604051808303815f875af11580156113ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113de9190612edd565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d090612fa3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153e90613031565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161162191906126db565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361169c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611693906130bf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361170a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117019061314d565b60405180910390fd5b5f811161174c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611743906131db565b60405180910390fd5b5f611755610b80565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117c35750611793610b80565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d3e5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611866575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61186e575f80fd5b6118aa606461189c600b54600e54116118895760075461188d565b6009545b8561205090919063ffffffff16565b6120c790919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611955575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119a8575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a8b57600f548211156119f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e990613243565b60405180910390fd5b601054826119ff856107dc565b611a099190613261565b1115611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a41906132de565b60405180910390fd5b436003600654611a5a9190613261565b1115611a7357611a6983612110565b15611a72575f80fd5b5b600e5f815480929190611a8590612c72565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b2f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b8d5760105482611b41856107dc565b611b4b9190613261565b1115611b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b83906132de565b60405180910390fd5b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c1557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c5957611c566064611c48600c54600e5411611c3557600854611c39565b600a545b8561205090919063ffffffff16565b6120c790919063ffffffff16565b90505b5f611c63306107dc565b9050601460159054906101000a900460ff16158015611cce575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ce65750601460169054906101000a900460ff165b8015611cf3575060115481115b8015611d025750600d54600e54115b15611d3c57611d24611d1f84611d1a84601254612121565b612121565b612139565b5f4790505f811115611d3a57611d39476123a4565b5b505b505b5f811115611e3d57611d968160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461240c90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e3491906126db565b60405180910390a35b611e8d8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461246990919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611f30611ee4828461246990919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461240c90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611fd3848661246990919063ffffffff16565b604051611fe091906126db565b60405180910390a350505050565b5f838311158290612035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202c919061259d565b60405180910390fd5b505f838561204391906132fc565b9050809150509392505050565b5f808303612060575f90506120c1565b5f828461206d9190612b9c565b905082848261207c919061335c565b146120bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b3906133fc565b60405180910390fd5b809150505b92915050565b5f61210883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124b2565b905092915050565b5f80823b90505f8111915050919050565b5f81831161212f5782612131565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156121705761216f61277c565b5b60405190808252806020026020018201604052801561219e5781602001602082028036833780820191505090505b50905030815f815181106121b5576121b4612c45565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612259573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061227d9190612d35565b8160018151811061229157612290612c45565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122f73060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461146b565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123599594939291906134d1565b5f604051808303815f87803b158015612370575f80fd5b505af1158015612382573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612408573d5f803e3d5ffd5b5050565b5f80828461241a9190613261565b90508381101561245f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245690613573565b60405180910390fd5b8091505092915050565b5f6124aa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fee565b905092915050565b5f80831182906124f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ef919061259d565b60405180910390fd5b505f8385612506919061335c565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561254a57808201518184015260208101905061252f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61256f82612513565b612579818561251d565b935061258981856020860161252d565b61259281612555565b840191505092915050565b5f6020820190508181035f8301526125b58184612565565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125f7826125ce565b9050919050565b612607816125ed565b8114612611575f80fd5b50565b5f81359050612622816125fe565b92915050565b5f819050919050565b61263a81612628565b8114612644575f80fd5b50565b5f8135905061265581612631565b92915050565b5f8060408385031215612671576126706125c6565b5b5f61267e85828601612614565b925050602061268f85828601612647565b9150509250929050565b5f8115159050919050565b6126ad81612699565b82525050565b5f6020820190506126c65f8301846126a4565b92915050565b6126d581612628565b82525050565b5f6020820190506126ee5f8301846126cc565b92915050565b5f805f6060848603121561270b5761270a6125c6565b5b5f61271886828701612614565b935050602061272986828701612614565b925050604061273a86828701612647565b9150509250925092565b5f60ff82169050919050565b61275981612744565b82525050565b5f6020820190506127725f830184612750565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6127b282612555565b810181811067ffffffffffffffff821117156127d1576127d061277c565b5b80604052505050565b5f6127e36125bd565b90506127ef82826127a9565b919050565b5f67ffffffffffffffff82111561280e5761280d61277c565b5b602082029050602081019050919050565b5f80fd5b5f612835612830846127f4565b6127da565b905080838252602082019050602084028301858111156128585761285761281f565b5b835b81811015612881578061286d8882612614565b84526020840193505060208101905061285a565b5050509392505050565b5f82601f83011261289f5761289e612778565b5b81356128af848260208601612823565b91505092915050565b5f602082840312156128cd576128cc6125c6565b5b5f82013567ffffffffffffffff8111156128ea576128e96125ca565b5b6128f68482850161288b565b91505092915050565b5f60208284031215612914576129136125c6565b5b5f61292184828501612614565b91505092915050565b5f612934826125ce565b9050919050565b6129448161292a565b811461294e575f80fd5b50565b5f8135905061295f8161293b565b92915050565b5f6020828403121561297a576129796125c6565b5b5f61298784828501612951565b91505092915050565b612999816125ed565b82525050565b5f6020820190506129b25f830184612990565b92915050565b5f80604083850312156129ce576129cd6125c6565b5b5f6129db85828601612614565b92505060206129ec85828601612614565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612a7857808604811115612a5457612a536129f6565b5b6001851615612a635780820291505b8081029050612a7185612a23565b9450612a38565b94509492505050565b5f82612a905760019050612b4b565b81612a9d575f9050612b4b565b8160018114612ab35760028114612abd57612aec565b6001915050612b4b565b60ff841115612acf57612ace6129f6565b5b8360020a915084821115612ae657612ae56129f6565b5b50612b4b565b5060208310610133831016604e8410600b8410161715612b215782820a905083811115612b1c57612b1b6129f6565b5b612b4b565b612b2e8484846001612a2f565b92509050818404811115612b4557612b446129f6565b5b81810290505b9392505050565b5f612b5c82612628565b9150612b6783612744565b9250612b947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a81565b905092915050565b5f612ba682612628565b9150612bb183612628565b9250828202612bbf81612628565b91508282048414831517612bd657612bd56129f6565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612c1160208361251d565b9150612c1c82612bdd565b602082019050919050565b5f6020820190508181035f830152612c3e81612c05565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612c7c82612628565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612cae57612cad6129f6565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612ced60178361251d565b9150612cf882612cb9565b602082019050919050565b5f6020820190508181035f830152612d1a81612ce1565b9050919050565b5f81519050612d2f816125fe565b92915050565b5f60208284031215612d4a57612d496125c6565b5b5f612d5784828501612d21565b91505092915050565b5f604082019050612d735f830185612990565b612d806020830184612990565b9392505050565b5f819050919050565b5f819050919050565b5f612db3612dae612da984612d87565b612d90565b612628565b9050919050565b612dc381612d99565b82525050565b5f60c082019050612ddc5f830189612990565b612de960208301886126cc565b612df66040830187612dba565b612e036060830186612dba565b612e106080830185612990565b612e1d60a08301846126cc565b979650505050505050565b5f81519050612e3681612631565b92915050565b5f805f60608486031215612e5357612e526125c6565b5b5f612e6086828701612e28565b9350506020612e7186828701612e28565b9250506040612e8286828701612e28565b9150509250925092565b5f604082019050612e9f5f830185612990565b612eac60208301846126cc565b9392505050565b612ebc81612699565b8114612ec6575f80fd5b50565b5f81519050612ed781612eb3565b92915050565b5f60208284031215612ef257612ef16125c6565b5b5f612eff84828501612ec9565b91505092915050565b5f60208284031215612f1d57612f1c6125c6565b5b5f612f2a84828501612e28565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612f8d60248361251d565b9150612f9882612f33565b604082019050919050565b5f6020820190508181035f830152612fba81612f81565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61301b60228361251d565b915061302682612fc1565b604082019050919050565b5f6020820190508181035f8301526130488161300f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6130a960258361251d565b91506130b48261304f565b604082019050919050565b5f6020820190508181035f8301526130d68161309d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61313760238361251d565b9150613142826130dd565b604082019050919050565b5f6020820190508181035f8301526131648161312b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6131c560298361251d565b91506131d08261316b565b604082019050919050565b5f6020820190508181035f8301526131f2816131b9565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61322d60198361251d565b9150613238826131f9565b602082019050919050565b5f6020820190508181035f83015261325a81613221565b9050919050565b5f61326b82612628565b915061327683612628565b925082820190508082111561328e5761328d6129f6565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6132c8601a8361251d565b91506132d382613294565b602082019050919050565b5f6020820190508181035f8301526132f5816132bc565b9050919050565b5f61330682612628565b915061331183612628565b9250828203905081811115613329576133286129f6565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61336682612628565b915061337183612628565b9250826133815761338061332f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133e660218361251d565b91506133f18261338c565b604082019050919050565b5f6020820190508181035f830152613413816133da565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61344c816125ed565b82525050565b5f61345d8383613443565b60208301905092915050565b5f602082019050919050565b5f61347f8261341a565b6134898185613424565b935061349483613434565b805f5b838110156134c45781516134ab8882613452565b97506134b683613469565b925050600181019050613497565b5085935050505092915050565b5f60a0820190506134e45f8301886126cc565b6134f16020830187612dba565b81810360408301526135038186613475565b90506135126060830185612990565b61351f60808301846126cc565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61355d601b8361251d565b915061356882613529565b602082019050919050565b5f6020820190508181035f83015261358a81613551565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202580dba22f6a5206d303b2b6dda24590aaf7f8f043ebe31eda3997eb5a46c11a64736f6c63430008140033

Deployed Bytecode Sourcemap

3587:8275:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5426:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6259:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4699:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5703:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6428:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5612:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10569:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10739:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5806:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2668:148;;;;;;;;;;;;;:::i;:::-;;10130:159;;;;;;;;;;;;;:::i;:::-;;11704:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4510:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2454:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4571:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5517:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5933:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4634:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10830:707;;;;;;;;;;;;;:::i;:::-;;10397:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11545:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6108:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5426:83;5463:13;5496:5;;;;;;;;;;;;;;;;;5489:12;;5426:83;:::o;6259:161::-;6334:4;6351:39;6360:12;:10;:12::i;:::-;6374:7;6383:6;6351:8;:39::i;:::-;6408:4;6401:11;;6259:161;;;;:::o;4699:52::-;;;;:::o;5703:95::-;5756:7;4322:1;4378:2;:13;;;;:::i;:::-;4365:10;:26;;;;:::i;:::-;5776:14;;5703:95;:::o;6428:313::-;6526:4;6543:36;6553:6;6561:9;6572:6;6543:9;:36::i;:::-;6590:121;6599:6;6607:12;:10;:12::i;:::-;6621:89;6659:6;6621:89;;;;;;;;;;;;;;;;;:11;:19;6633:6;6621:19;;;;;;;;;;;;;;;:33;6641:12;:10;:12::i;:::-;6621:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6590:8;:121::i;:::-;6729:4;6722:11;;6428:313;;;;;:::o;5612:83::-;5653:5;4322:1;5671:16;;5612:83;:::o;10569:162::-;2591:12;:10;:12::i;:::-;2581:22;;:6;;;;;;;;;;:22;;;2573:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10642:6:::1;10637:87;10658:6;:13;10654:1;:17;10637:87;;;10709:5;10691:4;:15;10696:6;10703:1;10696:9;;;;;;;;:::i;:::-;;;;;;;;10691:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10673:3;;;;;:::i;:::-;;;;10637:87;;;;10569:162:::0;:::o;10739:83::-;10786:4;10807;:7;10812:1;10807:7;;;;;;;;;;;;;;;;;;;;;;;;;10800:14;;10739:83;;;:::o;5806:119::-;5872:7;5899:9;:18;5909:7;5899:18;;;;;;;;;;;;;;;;5892:25;;5806:119;;;:::o;2668:148::-;2591:12;:10;:12::i;:::-;2581:22;;:6;;;;;;;;;;:22;;;2573:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2775:1:::1;2738:40;;2759:6;::::0;::::1;;;;;;;;2738:40;;;;;;;;;;;;2806:1;2789:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2668:148::o:0;10130:159::-;2591:12;:10;:12::i;:::-;2581:22;;:6;;;;;;;;;;:22;;;2573:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4322:1:::1;4378:2;:13;;;;:::i;:::-;4365:10;:26;;;;:::i;:::-;10183:12;:22;;;;4322:1;4378:2;:13;;;;:::i;:::-;4365:10;:26;;;;:::i;:::-;10216:14;:22;;;;10254:27;4322:1;4378:2;:13;;;;:::i;:::-;4365:10;:26;;;;:::i;:::-;10254:27;;;;;;:::i;:::-;;;;;;;;10130:159::o:0;11704:116::-;2591:12;:10;:12::i;:::-;2581:22;;:6;;;;;;;;;;:22;;;2573:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11776:4:::1;:13;;:36;11790:21;11776:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11704:116:::0;:::o;4510:54::-;;;;:::o;2454:79::-;2492:7;2519:6;;;;;;;;;;;2512:13;;2454:79;:::o;4571:56::-;;;;:::o;5517:87::-;5556:13;5589:7;;;;;;;;;;;;;;;;;5582:14;;5517:87;:::o;5933:167::-;6011:4;6028:42;6038:12;:10;:12::i;:::-;6052:9;6063:6;6028:9;:42::i;:::-;6088:4;6081:11;;5933:167;;;;:::o;4634:58::-;;;;:::o;10830:707::-;2591:12;:10;:12::i;:::-;2581:22;;:6;;;;;;;;;;:22;;;2573:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10894:11:::1;::::0;::::1;;;;;;;;10893:12;10885:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10980:42;10943:15;;:80;;;;;;;;;;;;;;;;;;11034:58;11051:4;11066:15;;;;;;;;;;;4322:1;4378:2;:13;;;;:::i;:::-;4365:10;:26;;;;:::i;:::-;11034:8;:58::i;:::-;11137:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11119:55;;;11183:4;11190:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11119:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11103:13;;:110;;;;;;;;;;;;;;;;;;11224:15;;;;;;;;;;;:31;;;11263:21;11294:4;11300:24;11318:4;11300:9;:24::i;:::-;11325:1;11327::::0;11329:7:::1;:5;:7::i;:::-;11337:15;11224:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11371:13;;;;;;;;;;;11364:29;;;11402:15;;;;;;;;;;;11420:14;11364:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11460:4;11446:11;;:18;;;;;;;;;;;;;;;;;;11489:4;11475:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11517:12;11504:10;:25;;;;10830:707::o:0;10397:164::-;2591:12;:10;:12::i;:::-;2581:22;;:6;;;;;;;;;;:22;;;2573:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10471:6:::1;10466:88;10487:5;:12;10483:1;:16;10466:88;;;10538:4;10521;:14;10526:5;10532:1;10526:8;;;;;;;;:::i;:::-;;;;;;;;10521:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10501:3;;;;;:::i;:::-;;;;10466:88;;;;10397:164:::0;:::o;11545:151::-;2591:12;:10;:12::i;:::-;2581:22;;:6;;;;;;;;;;:22;;;2573:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11619:6:::1;11612:23;;;11636:10;11655:6;11648:24;;;11681:4;11648:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11612:76;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11545:151:::0;:::o;6108:143::-;6189:7;6216:11;:18;6228:5;6216:18;;;;;;;;;;;;;;;:27;6235:7;6216:27;;;;;;;;;;;;;;;;6209:34;;6108:143;;;;:::o;208:98::-;261:7;288:10;281:17;;208:98;:::o;6749:335::-;6859:1;6842:19;;:5;:19;;;6834:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6940:1;6921:21;;:7;:21;;;6913:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7022:6;6992:11;:18;7004:5;6992:18;;;;;;;;;;;;;;;:27;7011:7;6992:27;;;;;;;;;;;;;;;:36;;;;7060:7;7044:32;;7053:5;7044:32;;;7069:6;7044:32;;;;;;:::i;:::-;;;;;;;;6749:335;;;:::o;7092:2228::-;7196:1;7180:18;;:4;:18;;;7172:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7273:1;7259:16;;:2;:16;;;7251:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7343:1;7334:6;:10;7326:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7401:17;7443:7;:5;:7::i;:::-;7435:15;;:4;:15;;;;:32;;;;;7460:7;:5;:7::i;:::-;7454:13;;:2;:13;;;;7435:32;7431:1533;;;7493:4;:10;7498:4;7493:10;;;;;;;;;;;;;;;;;;;;;;;;;7492:11;:24;;;;;7508:4;:8;7513:2;7508:8;;;;;;;;;;;;;;;;;;;;;;;;;7507:9;7492:24;7484:33;;;;;;7544:76;7616:3;7544:67;7566:15;;7556:9;;:25;7555:55;;7596:14;;7555:55;;;7583:12;;7555:55;7544:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7532:88;;7649:13;;;;;;;;;;;7641:21;;:4;:21;;;:55;;;;;7680:15;;;;;;;;;;;7666:30;;:2;:30;;;;7641:55;:83;;;;;7702:18;:22;7721:2;7702:22;;;;;;;;;;;;;;;;;;;;;;;;;7700:24;7641:83;7637:436;;;7764:12;;7754:6;:22;;7746:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7859:14;;7849:6;7833:13;7843:2;7833:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7825:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7947:12;7942:1;7929:10;;:14;;;;:::i;:::-;:30;7925:103;;;7993:14;8004:2;7993:10;:14::i;:::-;7992:15;7984:24;;;;;;7925:103;8046:9;;:11;;;;;;;;;:::i;:::-;;;;;;7637:436;8099:13;;;;;;;;;;;8093:19;;:2;:19;;;;:47;;;;;8118:18;:22;8137:2;8118:22;;;;;;;;;;;;;;;;;;;;;;;;;8116:24;8093:47;8089:167;;;8195:14;;8185:6;8169:13;8179:2;8169:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8161:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8089:167;8281:13;;;;;;;;;;;8275:19;;:2;:19;;;:43;;;;;8313:4;8298:20;;:4;:20;;;;8275:43;8272:174;;;8351:79;8426:3;8351:70;8373:16;;8363:9;;:26;8362:58;;8405:15;;8362:58;;;8391:13;;8362:58;8351:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8339:91;;8272:174;8462:28;8493:24;8511:4;8493:9;:24::i;:::-;8462:55;;8537:6;;;;;;;;;;;8536:7;:32;;;;;8555:13;;;;;;;;;;;8547:21;;:2;:21;;;8536:32;:47;;;;;8572:11;;;;;;;;;;;8536:47;:89;;;;;8608:17;;8587:20;:38;8536:89;:121;;;;;8639:18;;8629:9;;:28;8536:121;8532:421;;;8678:67;8695:49;8699:6;8706:37;8710:20;8731:11;;8706:3;:37::i;:::-;8695:3;:49::i;:::-;8678:16;:67::i;:::-;8764:26;8793:21;8764:50;;8857:1;8836:18;:22;8833:105;;;8883:35;8896:21;8883:12;:35::i;:::-;8833:105;8659:294;8532:421;7469:1495;7431:1533;8989:1;8979:9;:11;8976:161;;;9029:39;9058:9;9029;:24;9047:4;9029:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9004:9;:24;9022:4;9004:24;;;;;;;;;;;;;;;:64;;;;9109:4;9086:39;;9095:4;9086:39;;;9115:9;9086:39;;;;;;:::i;:::-;;;;;;;;8976:161;9163:27;9183:6;9163:9;:15;9173:4;9163:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9147:9;:15;9157:4;9147:15;;;;;;;;;;;;;;;:43;;;;9215:40;9233:21;9244:9;9233:6;:10;;:21;;;;:::i;:::-;9215:9;:13;9225:2;9215:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9201:9;:13;9211:2;9201:13;;;;;;;;;;;;;;;:54;;;;9286:2;9271:41;;9280:4;9271:41;;;9290:21;9301:9;9290:6;:10;;:21;;;;:::i;:::-;9271:41;;;;;;:::i;:::-;;;;;;;;7161:2159;7092:2228;;;:::o;1346:190::-;1432:7;1465:1;1460;:6;;1468:12;1452:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1492:9;1508:1;1504;:5;;;;:::i;:::-;1492:17;;1527:1;1520:8;;;1346:190;;;;;:::o;1544:246::-;1602:7;1631:1;1626;:6;1622:47;;1656:1;1649:8;;;;1622:47;1679:9;1695:1;1691;:5;;;;:::i;:::-;1679:17;;1724:1;1719;1715;:5;;;;:::i;:::-;:10;1707:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1781:1;1774:8;;;1544:246;;;;;:::o;1798:132::-;1856:7;1883:39;1887:1;1890;1883:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1876:46;;1798:132;;;;:::o;9436:195::-;9495:4;9512:12;9579:7;9567:20;9559:28;;9622:1;9615:4;:8;9608:15;;;9436:195;;;:::o;9330:98::-;9387:7;9414:1;9412;:3;9411:9;;9419:1;9411:9;;;9417:1;9411:9;9404:16;;9330:98;;;;:::o;9639:483::-;5042:4;5033:6;;:13;;;;;;;;;;;;;;;;;;9717:21:::1;9755:1;9741:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9717:40;;9786:4;9768;9773:1;9768:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9812:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9802:4;9807:1;9802:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9845:62;9862:4;9877:15;;;;;;;;;;;9895:11;9845:8;:62::i;:::-;9918:15;;;;;;;;;;;:66;;;9999:11;10025:1;10041:4;10068;10088:15;9918:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9706:416;5078:5:::0;5069:6;;:14;;;;;;;;;;;;;;;;;;9639:483;:::o;10297:92::-;10354:10;;;;;;;;;;;:19;;:27;10374:6;10354:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10297:92;:::o;1015:179::-;1073:7;1093:9;1109:1;1105;:5;;;;:::i;:::-;1093:17;;1134:1;1129;:6;;1121:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1185:1;1178:8;;;1015:179;;;;:::o;1202:136::-;1260:7;1287:43;1291:1;1294;1287:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1280:50;;1202:136;;;;:::o;1938:189::-;2024:7;2056:1;2052;:5;2059:12;2044:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2083:9;2099:1;2095;:5;;;;:::i;:::-;2083:17;;2118:1;2111:8;;;1938:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:104::-;8075:7;8104:24;8122:5;8104:24;:::i;:::-;8093:35;;8030:104;;;:::o;8140:138::-;8221:32;8247:5;8221:32;:::i;:::-;8214:5;8211:43;8201:71;;8268:1;8265;8258:12;8201:71;8140:138;:::o;8284:155::-;8338:5;8376:6;8363:20;8354:29;;8392:41;8427:5;8392:41;:::i;:::-;8284:155;;;;:::o;8445:345::-;8512:6;8561:2;8549:9;8540:7;8536:23;8532:32;8529:119;;;8567:79;;:::i;:::-;8529:119;8687:1;8712:61;8765:7;8756:6;8745:9;8741:22;8712:61;:::i;:::-;8702:71;;8658:125;8445:345;;;;:::o;8796:118::-;8883:24;8901:5;8883:24;:::i;:::-;8878:3;8871:37;8796:118;;:::o;8920:222::-;9013:4;9051:2;9040:9;9036:18;9028:26;;9064:71;9132:1;9121:9;9117:17;9108:6;9064:71;:::i;:::-;8920:222;;;;:::o;9148:474::-;9216:6;9224;9273:2;9261:9;9252:7;9248:23;9244:32;9241:119;;;9279:79;;:::i;:::-;9241:119;9399:1;9424:53;9469:7;9460:6;9449:9;9445:22;9424:53;:::i;:::-;9414:63;;9370:117;9526:2;9552:53;9597:7;9588:6;9577:9;9573:22;9552:53;:::i;:::-;9542:63;;9497:118;9148:474;;;;;:::o;9628:180::-;9676:77;9673:1;9666:88;9773:4;9770:1;9763:15;9797:4;9794:1;9787:15;9814:102;9856:8;9903:5;9900:1;9896:13;9875:34;;9814:102;;;:::o;9922:848::-;9983:5;9990:4;10014:6;10005:15;;10038:5;10029:14;;10052:712;10073:1;10063:8;10060:15;10052:712;;;10168:4;10163:3;10159:14;10153:4;10150:24;10147:50;;;10177:18;;:::i;:::-;10147:50;10227:1;10217:8;10213:16;10210:451;;;10642:4;10635:5;10631:16;10622:25;;10210:451;10692:4;10686;10682:15;10674:23;;10722:32;10745:8;10722:32;:::i;:::-;10710:44;;10052:712;;;9922:848;;;;;;;:::o;10776:1073::-;10830:5;11021:8;11011:40;;11042:1;11033:10;;11044:5;;11011:40;11070:4;11060:36;;11087:1;11078:10;;11089:5;;11060:36;11156:4;11204:1;11199:27;;;;11240:1;11235:191;;;;11149:277;;11199:27;11217:1;11208:10;;11219:5;;;11235:191;11280:3;11270:8;11267:17;11264:43;;;11287:18;;:::i;:::-;11264:43;11336:8;11333:1;11329:16;11320:25;;11371:3;11364:5;11361:14;11358:40;;;11378:18;;:::i;:::-;11358:40;11411:5;;;11149:277;;11535:2;11525:8;11522:16;11516:3;11510:4;11507:13;11503:36;11485:2;11475:8;11472:16;11467:2;11461:4;11458:12;11454:35;11438:111;11435:246;;;11591:8;11585:4;11581:19;11572:28;;11626:3;11619:5;11616:14;11613:40;;;11633:18;;:::i;:::-;11613:40;11666:5;;11435:246;11706:42;11744:3;11734:8;11728:4;11725:1;11706:42;:::i;:::-;11691:57;;;;11780:4;11775:3;11771:14;11764:5;11761:25;11758:51;;;11789:18;;:::i;:::-;11758:51;11838:4;11831:5;11827:16;11818:25;;10776:1073;;;;;;:::o;11855:281::-;11913:5;11937:23;11955:4;11937:23;:::i;:::-;11929:31;;11981:25;11997:8;11981:25;:::i;:::-;11969:37;;12025:104;12062:66;12052:8;12046:4;12025:104;:::i;:::-;12016:113;;11855:281;;;;:::o;12142:410::-;12182:7;12205:20;12223:1;12205:20;:::i;:::-;12200:25;;12239:20;12257:1;12239:20;:::i;:::-;12234:25;;12294:1;12291;12287:9;12316:30;12334:11;12316:30;:::i;:::-;12305:41;;12495:1;12486:7;12482:15;12479:1;12476:22;12456:1;12449:9;12429:83;12406:139;;12525:18;;:::i;:::-;12406:139;12190:362;12142:410;;;;:::o;12558:182::-;12698:34;12694:1;12686:6;12682:14;12675:58;12558:182;:::o;12746:366::-;12888:3;12909:67;12973:2;12968:3;12909:67;:::i;:::-;12902:74;;12985:93;13074:3;12985:93;:::i;:::-;13103:2;13098:3;13094:12;13087:19;;12746:366;;;:::o;13118:419::-;13284:4;13322:2;13311:9;13307:18;13299:26;;13371:9;13365:4;13361:20;13357:1;13346:9;13342:17;13335:47;13399:131;13525:4;13399:131;:::i;:::-;13391:139;;13118:419;;;:::o;13543:180::-;13591:77;13588:1;13581:88;13688:4;13685:1;13678:15;13712:4;13709:1;13702:15;13729:233;13768:3;13791:24;13809:5;13791:24;:::i;:::-;13782:33;;13837:66;13830:5;13827:77;13824:103;;13907:18;;:::i;:::-;13824:103;13954:1;13947:5;13943:13;13936:20;;13729:233;;;:::o;13968:173::-;14108:25;14104:1;14096:6;14092:14;14085:49;13968:173;:::o;14147:366::-;14289:3;14310:67;14374:2;14369:3;14310:67;:::i;:::-;14303:74;;14386:93;14475:3;14386:93;:::i;:::-;14504:2;14499:3;14495:12;14488:19;;14147:366;;;:::o;14519:419::-;14685:4;14723:2;14712:9;14708:18;14700:26;;14772:9;14766:4;14762:20;14758:1;14747:9;14743:17;14736:47;14800:131;14926:4;14800:131;:::i;:::-;14792:139;;14519:419;;;:::o;14944:143::-;15001:5;15032:6;15026:13;15017:22;;15048:33;15075:5;15048:33;:::i;:::-;14944:143;;;;:::o;15093:351::-;15163:6;15212:2;15200:9;15191:7;15187:23;15183:32;15180:119;;;15218:79;;:::i;:::-;15180:119;15338:1;15363:64;15419:7;15410:6;15399:9;15395:22;15363:64;:::i;:::-;15353:74;;15309:128;15093:351;;;;:::o;15450:332::-;15571:4;15609:2;15598:9;15594:18;15586:26;;15622:71;15690:1;15679:9;15675:17;15666:6;15622:71;:::i;:::-;15703:72;15771:2;15760:9;15756:18;15747:6;15703:72;:::i;:::-;15450:332;;;;;:::o;15788:85::-;15833:7;15862:5;15851:16;;15788:85;;;:::o;15879:60::-;15907:3;15928:5;15921:12;;15879:60;;;:::o;15945:158::-;16003:9;16036:61;16054:42;16063:32;16089:5;16063:32;:::i;:::-;16054:42;:::i;:::-;16036:61;:::i;:::-;16023:74;;15945:158;;;:::o;16109:147::-;16204:45;16243:5;16204:45;:::i;:::-;16199:3;16192:58;16109:147;;:::o;16262:807::-;16511:4;16549:3;16538:9;16534:19;16526:27;;16563:71;16631:1;16620:9;16616:17;16607:6;16563:71;:::i;:::-;16644:72;16712:2;16701:9;16697:18;16688:6;16644:72;:::i;:::-;16726:80;16802:2;16791:9;16787:18;16778:6;16726:80;:::i;:::-;16816;16892:2;16881:9;16877:18;16868:6;16816:80;:::i;:::-;16906:73;16974:3;16963:9;16959:19;16950:6;16906:73;:::i;:::-;16989;17057:3;17046:9;17042:19;17033:6;16989:73;:::i;:::-;16262:807;;;;;;;;;:::o;17075:143::-;17132:5;17163:6;17157:13;17148:22;;17179:33;17206:5;17179:33;:::i;:::-;17075:143;;;;:::o;17224:663::-;17312:6;17320;17328;17377:2;17365:9;17356:7;17352:23;17348:32;17345:119;;;17383:79;;:::i;:::-;17345:119;17503:1;17528:64;17584:7;17575:6;17564:9;17560:22;17528:64;:::i;:::-;17518:74;;17474:128;17641:2;17667:64;17723:7;17714:6;17703:9;17699:22;17667:64;:::i;:::-;17657:74;;17612:129;17780:2;17806:64;17862:7;17853:6;17842:9;17838:22;17806:64;:::i;:::-;17796:74;;17751:129;17224:663;;;;;:::o;17893:332::-;18014:4;18052:2;18041:9;18037:18;18029:26;;18065:71;18133:1;18122:9;18118:17;18109:6;18065:71;:::i;:::-;18146:72;18214:2;18203:9;18199:18;18190:6;18146:72;:::i;:::-;17893:332;;;;;:::o;18231:116::-;18301:21;18316:5;18301:21;:::i;:::-;18294:5;18291:32;18281:60;;18337:1;18334;18327:12;18281:60;18231:116;:::o;18353:137::-;18407:5;18438:6;18432:13;18423:22;;18454:30;18478:5;18454:30;:::i;:::-;18353:137;;;;:::o;18496:345::-;18563:6;18612:2;18600:9;18591:7;18587:23;18583:32;18580:119;;;18618:79;;:::i;:::-;18580:119;18738:1;18763:61;18816:7;18807:6;18796:9;18792:22;18763:61;:::i;:::-;18753:71;;18709:125;18496:345;;;;:::o;18847:351::-;18917:6;18966:2;18954:9;18945:7;18941:23;18937:32;18934:119;;;18972:79;;:::i;:::-;18934:119;19092:1;19117:64;19173:7;19164:6;19153:9;19149:22;19117:64;:::i;:::-;19107:74;;19063:128;18847:351;;;;:::o;19204:223::-;19344:34;19340:1;19332:6;19328:14;19321:58;19413:6;19408:2;19400:6;19396:15;19389:31;19204:223;:::o;19433:366::-;19575:3;19596:67;19660:2;19655:3;19596:67;:::i;:::-;19589:74;;19672:93;19761:3;19672:93;:::i;:::-;19790:2;19785:3;19781:12;19774:19;;19433:366;;;:::o;19805:419::-;19971:4;20009:2;19998:9;19994:18;19986:26;;20058:9;20052:4;20048:20;20044:1;20033:9;20029:17;20022:47;20086:131;20212:4;20086:131;:::i;:::-;20078:139;;19805:419;;;:::o;20230:221::-;20370:34;20366:1;20358:6;20354:14;20347:58;20439:4;20434:2;20426:6;20422:15;20415:29;20230:221;:::o;20457:366::-;20599:3;20620:67;20684:2;20679:3;20620:67;:::i;:::-;20613:74;;20696:93;20785:3;20696:93;:::i;:::-;20814:2;20809:3;20805:12;20798:19;;20457:366;;;:::o;20829:419::-;20995:4;21033:2;21022:9;21018:18;21010:26;;21082:9;21076:4;21072:20;21068:1;21057:9;21053:17;21046:47;21110:131;21236:4;21110:131;:::i;:::-;21102:139;;20829:419;;;:::o;21254:224::-;21394:34;21390:1;21382:6;21378:14;21371:58;21463:7;21458:2;21450:6;21446:15;21439:32;21254:224;:::o;21484:366::-;21626:3;21647:67;21711:2;21706:3;21647:67;:::i;:::-;21640:74;;21723:93;21812:3;21723:93;:::i;:::-;21841:2;21836:3;21832:12;21825:19;;21484:366;;;:::o;21856:419::-;22022:4;22060:2;22049:9;22045:18;22037:26;;22109:9;22103:4;22099:20;22095:1;22084:9;22080:17;22073:47;22137:131;22263:4;22137:131;:::i;:::-;22129:139;;21856:419;;;:::o;22281:222::-;22421:34;22417:1;22409:6;22405:14;22398:58;22490:5;22485:2;22477:6;22473:15;22466:30;22281:222;:::o;22509:366::-;22651:3;22672:67;22736:2;22731:3;22672:67;:::i;:::-;22665:74;;22748:93;22837:3;22748:93;:::i;:::-;22866:2;22861:3;22857:12;22850:19;;22509:366;;;:::o;22881:419::-;23047:4;23085:2;23074:9;23070:18;23062:26;;23134:9;23128:4;23124:20;23120:1;23109:9;23105:17;23098:47;23162:131;23288:4;23162:131;:::i;:::-;23154:139;;22881:419;;;:::o;23306:228::-;23446:34;23442:1;23434:6;23430:14;23423:58;23515:11;23510:2;23502:6;23498:15;23491:36;23306:228;:::o;23540:366::-;23682:3;23703:67;23767:2;23762:3;23703:67;:::i;:::-;23696:74;;23779:93;23868:3;23779:93;:::i;:::-;23897:2;23892:3;23888:12;23881:19;;23540:366;;;:::o;23912:419::-;24078:4;24116:2;24105:9;24101:18;24093:26;;24165:9;24159:4;24155:20;24151:1;24140:9;24136:17;24129:47;24193:131;24319:4;24193:131;:::i;:::-;24185:139;;23912:419;;;:::o;24337:175::-;24477:27;24473:1;24465:6;24461:14;24454:51;24337:175;:::o;24518:366::-;24660:3;24681:67;24745:2;24740:3;24681:67;:::i;:::-;24674:74;;24757:93;24846:3;24757:93;:::i;:::-;24875:2;24870:3;24866:12;24859:19;;24518:366;;;:::o;24890:419::-;25056:4;25094:2;25083:9;25079:18;25071:26;;25143:9;25137:4;25133:20;25129:1;25118:9;25114:17;25107:47;25171:131;25297:4;25171:131;:::i;:::-;25163:139;;24890:419;;;:::o;25315:191::-;25355:3;25374:20;25392:1;25374:20;:::i;:::-;25369:25;;25408:20;25426:1;25408:20;:::i;:::-;25403:25;;25451:1;25448;25444:9;25437:16;;25472:3;25469:1;25466:10;25463:36;;;25479:18;;:::i;:::-;25463:36;25315:191;;;;:::o;25512:176::-;25652:28;25648:1;25640:6;25636:14;25629:52;25512:176;:::o;25694:366::-;25836:3;25857:67;25921:2;25916:3;25857:67;:::i;:::-;25850:74;;25933:93;26022:3;25933:93;:::i;:::-;26051:2;26046:3;26042:12;26035:19;;25694:366;;;:::o;26066:419::-;26232:4;26270:2;26259:9;26255:18;26247:26;;26319:9;26313:4;26309:20;26305:1;26294:9;26290:17;26283:47;26347:131;26473:4;26347:131;:::i;:::-;26339:139;;26066:419;;;:::o;26491:194::-;26531:4;26551:20;26569:1;26551:20;:::i;:::-;26546:25;;26585:20;26603:1;26585:20;:::i;:::-;26580:25;;26629:1;26626;26622:9;26614:17;;26653:1;26647:4;26644:11;26641:37;;;26658:18;;:::i;:::-;26641:37;26491:194;;;;:::o;26691:180::-;26739:77;26736:1;26729:88;26836:4;26833:1;26826:15;26860:4;26857:1;26850:15;26877:185;26917:1;26934:20;26952:1;26934:20;:::i;:::-;26929:25;;26968:20;26986:1;26968:20;:::i;:::-;26963:25;;27007:1;26997:35;;27012:18;;:::i;:::-;26997:35;27054:1;27051;27047:9;27042:14;;26877:185;;;;:::o;27068:220::-;27208:34;27204:1;27196:6;27192:14;27185:58;27277:3;27272:2;27264:6;27260:15;27253:28;27068:220;:::o;27294:366::-;27436:3;27457:67;27521:2;27516:3;27457:67;:::i;:::-;27450:74;;27533:93;27622:3;27533:93;:::i;:::-;27651:2;27646:3;27642:12;27635:19;;27294:366;;;:::o;27666:419::-;27832:4;27870:2;27859:9;27855:18;27847:26;;27919:9;27913:4;27909:20;27905:1;27894:9;27890:17;27883:47;27947:131;28073:4;27947:131;:::i;:::-;27939:139;;27666:419;;;:::o;28091:114::-;28158:6;28192:5;28186:12;28176:22;;28091:114;;;:::o;28211:184::-;28310:11;28344:6;28339:3;28332:19;28384:4;28379:3;28375:14;28360:29;;28211:184;;;;:::o;28401:132::-;28468:4;28491:3;28483:11;;28521:4;28516:3;28512:14;28504:22;;28401:132;;;:::o;28539:108::-;28616:24;28634:5;28616:24;:::i;:::-;28611:3;28604:37;28539:108;;:::o;28653:179::-;28722:10;28743:46;28785:3;28777:6;28743:46;:::i;:::-;28821:4;28816:3;28812:14;28798:28;;28653:179;;;;:::o;28838:113::-;28908:4;28940;28935:3;28931:14;28923:22;;28838:113;;;:::o;28987:732::-;29106:3;29135:54;29183:5;29135:54;:::i;:::-;29205:86;29284:6;29279:3;29205:86;:::i;:::-;29198:93;;29315:56;29365:5;29315:56;:::i;:::-;29394:7;29425:1;29410:284;29435:6;29432:1;29429:13;29410:284;;;29511:6;29505:13;29538:63;29597:3;29582:13;29538:63;:::i;:::-;29531:70;;29624:60;29677:6;29624:60;:::i;:::-;29614:70;;29470:224;29457:1;29454;29450:9;29445:14;;29410:284;;;29414:14;29710:3;29703:10;;29111:608;;;28987:732;;;;:::o;29725:831::-;29988:4;30026:3;30015:9;30011:19;30003:27;;30040:71;30108:1;30097:9;30093:17;30084:6;30040:71;:::i;:::-;30121:80;30197:2;30186:9;30182:18;30173:6;30121:80;:::i;:::-;30248:9;30242:4;30238:20;30233:2;30222:9;30218:18;30211:48;30276:108;30379:4;30370:6;30276:108;:::i;:::-;30268:116;;30394:72;30462:2;30451:9;30447:18;30438:6;30394:72;:::i;:::-;30476:73;30544:3;30533:9;30529:19;30520:6;30476:73;:::i;:::-;29725:831;;;;;;;;:::o;30562:177::-;30702:29;30698:1;30690:6;30686:14;30679:53;30562:177;:::o;30745:366::-;30887:3;30908:67;30972:2;30967:3;30908:67;:::i;:::-;30901:74;;30984:93;31073:3;30984:93;:::i;:::-;31102:2;31097:3;31093:12;31086:19;;30745:366;;;:::o;31117:419::-;31283:4;31321:2;31310:9;31306:18;31298:26;;31370:9;31364:4;31360:20;31356:1;31345:9;31341:17;31334:47;31398:131;31524:4;31398:131;:::i;:::-;31390:139;;31117:419;;;:::o

Swarm Source

ipfs://2580dba22f6a5206d303b2b6dda24590aaf7f8f043ebe31eda3997eb5a46c11a
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.