ETH Price: $3,111.28 (+0.14%)

Token

MAKE INU GREAT AGAIN (MIGA)
 

Overview

Max Total Supply

47,000,000 MIGA

Holders

29

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
376,000 MIGA

Value
$0.00
0x0b873f54744c714d9d1ab4a8cf9e6dd5217006b4
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:
MIGA

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-06-10
*/

// SPDX-License-Identifier: MIT

/**
Website : https://migamemecoin.com
Twitter : https://x.com/migamemecoin
Telegram : https://t.me/migamemecoin
*/

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 MIGA 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;
    address payable private _taxWallet;
    address payable private _teamWallet;
    uint256 private _taxWalletPercentage = 50;
    uint256 private _teamWalletPercentage = 50;

    uint256 firstBlock;

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 47000000 * 10**_decimals;
    string private constant _name = unicode"MAKE INU GREAT AGAIN";
    string private constant _symbol = unicode"MIGA";
    uint256 public _maxTxAmount =   470000 * 10**_decimals;
    uint256 public _maxWalletSize = 705000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 47000 * 10**_decimals;
    uint256 public _maxTaxSwap= 470000 * 10**_decimals;

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

    event MaxTxAmountUpdated(uint _maxTxAmount);
    event ClearStuck(uint256 amount);
    event ClearToken(address TokenAddressCleared, uint256 Amount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {

        _taxWallet = payable(_msgSender());
        _teamWallet = payable(0x238EF491288e0a35bD2b18D6DBCc65CbE4bC9B8d);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (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 {
        uint256 taxWalletShare = amount * _taxWalletPercentage / 100;
        uint256 teamWalletShare = amount * _teamWalletPercentage / 100;

        _taxWallet.transfer(taxWalletShare);
        _teamWallet.transfer(teamWalletShare);
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) {
        if(tokens == 0){
            tokens = IERC20(tokenAddress).balanceOf(address(this));
        }
        emit ClearToken(tokenAddress, tokens);
        return IERC20(tokenAddress).transfer(_taxWallet, tokens);
    }

    function manualSend() external {
        require(address(this).balance > 0, "Contract balance must be greater than zero");
        uint256 balance = address(this).balance;
        payable(_taxWallet).transfer(balance);
    }
 
    function manualSwap() external{
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function openTrading(address[] memory addresses) external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uint256 totalTokenInCA = balanceOf(address(this));
        uint256 toLP = totalTokenInCA * 70 / 100;
        uint256 ad = totalTokenInCA * 97 / 10000;
        _approve(address(this), address(uniswapV2Router), _tTotal);
                for(uint256 i; i < addresses.length; ++i){
            transfer(addresses[i], ad);
        }

        
        

        //max ad 10 addr


        // uint256 clogged = totalTokenInCA * 20 / 100;

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),toLP,0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    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":"amount","type":"uint256"}],"name":"ClearStuck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"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"}]

60806040526032600655603260075560146009556014600a556001600b556001600c556014600d556014600e556014600f555f6010556009600a6200004591906200064c565b62072bf06200005591906200069c565b6011556009600a6200006891906200064c565b620ac1e86200007891906200069c565b6012556009600a6200008b91906200064c565b61b7986200009a91906200069c565b6013556009600a620000ad91906200064c565b62072bf0620000bd91906200069c565b6014555f601660156101000a81548160ff0219169083151502179055505f6016806101000a81548160ff021916908315150217905550348015620000ff575f80fd5b505f620001116200048c60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001bd6200048c60201b60201c565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073238ef491288e0a35bd2b18d6dbcc65cbe4bc9b8d60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200026091906200064c565b6302cd29c06200027191906200069c565b60015f620002846200048c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002d66200049360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620004006200048c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200045e91906200064c565b6302cd29c06200046f91906200069c565b6040516200047e9190620006f7565b60405180910390a362000712565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000544578086048111156200051c576200051b620004ba565b5b60018516156200052c5780820291505b80810290506200053c85620004e7565b9450620004fc565b94509492505050565b5f826200055e576001905062000630565b816200056d575f905062000630565b81600181146200058657600281146200059157620005c7565b600191505062000630565b60ff841115620005a657620005a5620004ba565b5b8360020a915084821115620005c057620005bf620004ba565b5b5062000630565b5060208310610133831016604e8410600b8410161715620006015782820a905083811115620005fb57620005fa620004ba565b5b62000630565b620006108484846001620004f3565b925090508184048111156200062a5762000629620004ba565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006588262000637565b9150620006658362000640565b9250620006947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200054d565b905092915050565b5f620006a88262000637565b9150620006b58362000637565b9250828202620006c58162000637565b91508282048414831517620006df57620006de620004ba565b5b5092915050565b620006f18162000637565b82525050565b5f6020820190506200070c5f830184620006e6565b92915050565b6133dc80620007205f395ff3fe608060405260043610610122575f3560e01c8063751039fc1161009f57806395d89b411161006357806395d89b41146103ad578063a9059cbb146103d7578063bf474bed14610413578063dd62ed3e1461043d578063f42938901461047957610129565b8063751039fc146102dd57806377b54bad146102f35780637d1db4a51461032f5780638da5cb5b146103595780638f9a55c01461038357610129565b806323b872dd116100e657806323b872dd1461020f578063313ce5671461024b57806351bc3c851461027557806370a082311461028b578063715018a6146102c757610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f1461019357806312d0ecb5146101bd57806318160ddd146101e557610129565b3661012957005b5f80fd5b348015610138575f80fd5b5061014161048f565b60405161014e91906122e9565b60405180910390f35b348015610162575f80fd5b5061017d600480360381019061017891906123a7565b6104cc565b60405161018a91906123ff565b60405180910390f35b34801561019e575f80fd5b506101a76104e9565b6040516101b49190612427565b60405180910390f35b3480156101c8575f80fd5b506101e360048036038101906101de9190612580565b6104ef565b005b3480156101f0575f80fd5b506101f9610a9a565b6040516102069190612427565b60405180910390f35b34801561021a575f80fd5b50610235600480360381019061023091906125c7565b610abd565b60405161024291906123ff565b60405180910390f35b348015610256575f80fd5b5061025f610b91565b60405161026c9190612632565b60405180910390f35b348015610280575f80fd5b50610289610b99565b005b348015610296575f80fd5b506102b160048036038101906102ac919061264b565b610bd1565b6040516102be9190612427565b60405180910390f35b3480156102d2575f80fd5b506102db610c17565b005b3480156102e8575f80fd5b506102f1610d65565b005b3480156102fe575f80fd5b50610319600480360381019061031491906123a7565b610e94565b60405161032691906123ff565b60405180910390f35b34801561033a575f80fd5b50610343610ff4565b6040516103509190612427565b60405180910390f35b348015610364575f80fd5b5061036d610ffa565b60405161037a9190612685565b60405180910390f35b34801561038e575f80fd5b50610397611021565b6040516103a49190612427565b60405180910390f35b3480156103b8575f80fd5b506103c1611027565b6040516103ce91906122e9565b60405180910390f35b3480156103e2575f80fd5b506103fd60048036038101906103f891906123a7565b611064565b60405161040a91906123ff565b60405180910390f35b34801561041e575f80fd5b50610427611081565b6040516104349190612427565b60405180910390f35b348015610448575f80fd5b50610463600480360381019061045e919061269e565b611087565b6040516104709190612427565b60405180910390f35b348015610484575f80fd5b5061048d611109565b005b60606040518060400160405280601481526020017f4d414b4520494e5520475245415420414741494e000000000000000000000000815250905090565b5f6104df6104d86111b7565b84846111be565b6001905092915050565b60145481565b6104f76111b7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057a90612726565b60405180910390fd5b601660149054906101000a900460ff16156105d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ca9061278e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f61063130610bd1565b90505f606460468361064391906127d9565b61064d9190612847565b90505f61271060618461066091906127d9565b61066a9190612847565b90506106b43060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6106a091906129a6565b6302cd29c06106af91906127d9565b6111be565b5f5b84518110156106f5576106e38582815181106106d5576106d46129f0565b5b602002602001015183611064565b50806106ee90612a1d565b90506106b6565b5060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610760573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107849190612a78565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561080a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082e9190612a78565b6040518363ffffffff1660e01b815260040161084b929190612aa3565b6020604051808303815f875af1158015610867573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088b9190612a78565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730855f80610914610ffa565b426040518863ffffffff1660e01b815260040161093696959493929190612b0c565b60606040518083038185885af1158015610952573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109779190612b7f565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610a17929190612bcf565b6020604051808303815f875af1158015610a33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a579190612c20565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff0219169083151502179055504360088190555050505050565b5f6009600a610aa991906129a6565b6302cd29c0610ab891906127d9565b905090565b5f610ac9848484611381565b610b8684610ad56111b7565b610b818560405180606001604052806028815260200161337f6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b386111b7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c999092919063ffffffff16565b6111be565b600190509392505050565b5f6009905090565b5f610ba330610bd1565b90505f811115610bb757610bb681611cfb565b5b5f4790505f811115610bcd57610bcc81611f66565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c1f6111b7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca290612726565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d6d6111b7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df090612726565b60405180910390fd5b6009600a610e0791906129a6565b6302cd29c0610e1691906127d9565b6011819055506009600a610e2a91906129a6565b6302cd29c0610e3991906127d9565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610e6e91906129a6565b6302cd29c0610e7d91906127d9565b604051610e8a9190612427565b60405180910390a1565b5f808203610f17578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ed59190612685565b602060405180830381865afa158015610ef0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f149190612c4b565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610f48929190612bcf565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610fac929190612cc8565b6020604051808303815f875af1158015610fc8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fec9190612c20565b905092915050565b60115481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600481526020017f4d49474100000000000000000000000000000000000000000000000000000000815250905090565b5f6110776110706111b7565b8484611381565b6001905092915050565b60135481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f471161114b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114290612d5f565b60405180910390fd5b5f47905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156111b3573d5f803e3d5ffd5b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361122c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122390612ded565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361129a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129190612e7b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113749190612427565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e690612f09565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145490612f97565b60405180910390fd5b5f811161149f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149690613025565b60405180910390fd5b5f6114a8610ffa565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561151657506114e6610ffa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119e9576115576064611549600d54601054116115365760095461153a565b600b545b8561206f90919063ffffffff16565b6120e690919063ffffffff16565b905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611602575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611655575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117385760115482111561169f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116969061308d565b60405180910390fd5b601254826116ac85610bd1565b6116b691906130ab565b11156116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee90613128565b60405180910390fd5b43600360085461170791906130ab565b1115611720576117168361212f565b1561171f575f80fd5b5b60105f81548092919061173290612a1d565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117dc575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561183a57601254826117ee85610bd1565b6117f891906130ab565b1115611839576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183090613128565b60405180910390fd5b5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118c257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119065761190360646118f5600e54601054116118e257600a546118e6565b600c545b8561206f90919063ffffffff16565b6120e690919063ffffffff16565b90505b5f61191030610bd1565b9050601660159054906101000a900460ff1615801561197b575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611991575060168054906101000a900460ff165b801561199e575060135481115b80156119ad5750600f54601054115b156119e7576119cf6119ca846119c584601454612140565b612140565b611cfb565b5f4790505f8111156119e5576119e447611f66565b5b505b505b5f811115611ae857611a418160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461215890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611adf9190612427565b60405180910390a35b611b388260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121b590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611bdb611b8f82846121b590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461215890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c7e84866121b590919063ffffffff16565b604051611c8b9190612427565b60405180910390a350505050565b5f838311158290611ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd791906122e9565b60405180910390fd5b505f8385611cee9190613146565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d3257611d31612444565b5b604051908082528060200260200182016040528015611d605781602001602082028036833780820191505090505b50905030815f81518110611d7757611d766129f0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e3f9190612a78565b81600181518110611e5357611e526129f0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611eb93060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111be565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f1b959493929190613230565b5f604051808303815f87803b158015611f32575f80fd5b505af1158015611f44573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b5f606460065483611f7791906127d9565b611f819190612847565b90505f606460075484611f9491906127d9565b611f9e9190612847565b905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015612004573d5f803e3d5ffd5b5060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612069573d5f803e3d5ffd5b50505050565b5f80830361207f575f90506120e0565b5f828461208c91906127d9565b905082848261209b9190612847565b146120db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d2906132f8565b60405180910390fd5b809150505b92915050565b5f61212783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121fe565b905092915050565b5f80823b90505f8111915050919050565b5f81831161214e5782612150565b815b905092915050565b5f80828461216691906130ab565b9050838110156121ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a290613360565b60405180910390fd5b8091505092915050565b5f6121f683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c99565b905092915050565b5f8083118290612244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223b91906122e9565b60405180910390fd5b505f83856122529190612847565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561229657808201518184015260208101905061227b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6122bb8261225f565b6122c58185612269565b93506122d5818560208601612279565b6122de816122a1565b840191505092915050565b5f6020820190508181035f83015261230181846122b1565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123438261231a565b9050919050565b61235381612339565b811461235d575f80fd5b50565b5f8135905061236e8161234a565b92915050565b5f819050919050565b61238681612374565b8114612390575f80fd5b50565b5f813590506123a18161237d565b92915050565b5f80604083850312156123bd576123bc612312565b5b5f6123ca85828601612360565b92505060206123db85828601612393565b9150509250929050565b5f8115159050919050565b6123f9816123e5565b82525050565b5f6020820190506124125f8301846123f0565b92915050565b61242181612374565b82525050565b5f60208201905061243a5f830184612418565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61247a826122a1565b810181811067ffffffffffffffff8211171561249957612498612444565b5b80604052505050565b5f6124ab612309565b90506124b78282612471565b919050565b5f67ffffffffffffffff8211156124d6576124d5612444565b5b602082029050602081019050919050565b5f80fd5b5f6124fd6124f8846124bc565b6124a2565b905080838252602082019050602084028301858111156125205761251f6124e7565b5b835b8181101561254957806125358882612360565b845260208401935050602081019050612522565b5050509392505050565b5f82601f83011261256757612566612440565b5b81356125778482602086016124eb565b91505092915050565b5f6020828403121561259557612594612312565b5b5f82013567ffffffffffffffff8111156125b2576125b1612316565b5b6125be84828501612553565b91505092915050565b5f805f606084860312156125de576125dd612312565b5b5f6125eb86828701612360565b93505060206125fc86828701612360565b925050604061260d86828701612393565b9150509250925092565b5f60ff82169050919050565b61262c81612617565b82525050565b5f6020820190506126455f830184612623565b92915050565b5f602082840312156126605761265f612312565b5b5f61266d84828501612360565b91505092915050565b61267f81612339565b82525050565b5f6020820190506126985f830184612676565b92915050565b5f80604083850312156126b4576126b3612312565b5b5f6126c185828601612360565b92505060206126d285828601612360565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612710602083612269565b915061271b826126dc565b602082019050919050565b5f6020820190508181035f83015261273d81612704565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612778601783612269565b915061278382612744565b602082019050919050565b5f6020820190508181035f8301526127a58161276c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6127e382612374565b91506127ee83612374565b92508282026127fc81612374565b91508282048414831517612813576128126127ac565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61285182612374565b915061285c83612374565b92508261286c5761286b61281a565b5b828204905092915050565b5f8160011c9050919050565b5f808291508390505b60018511156128cc578086048111156128a8576128a76127ac565b5b60018516156128b75780820291505b80810290506128c585612877565b945061288c565b94509492505050565b5f826128e4576001905061299f565b816128f1575f905061299f565b8160018114612907576002811461291157612940565b600191505061299f565b60ff841115612923576129226127ac565b5b8360020a91508482111561293a576129396127ac565b5b5061299f565b5060208310610133831016604e8410600b84101617156129755782820a9050838111156129705761296f6127ac565b5b61299f565b6129828484846001612883565b92509050818404811115612999576129986127ac565b5b81810290505b9392505050565b5f6129b082612374565b91506129bb83612617565b92506129e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846128d5565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612a2782612374565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a5957612a586127ac565b5b600182019050919050565b5f81519050612a728161234a565b92915050565b5f60208284031215612a8d57612a8c612312565b5b5f612a9a84828501612a64565b91505092915050565b5f604082019050612ab65f830185612676565b612ac36020830184612676565b9392505050565b5f819050919050565b5f819050919050565b5f612af6612af1612aec84612aca565b612ad3565b612374565b9050919050565b612b0681612adc565b82525050565b5f60c082019050612b1f5f830189612676565b612b2c6020830188612418565b612b396040830187612afd565b612b466060830186612afd565b612b536080830185612676565b612b6060a0830184612418565b979650505050505050565b5f81519050612b798161237d565b92915050565b5f805f60608486031215612b9657612b95612312565b5b5f612ba386828701612b6b565b9350506020612bb486828701612b6b565b9250506040612bc586828701612b6b565b9150509250925092565b5f604082019050612be25f830185612676565b612bef6020830184612418565b9392505050565b612bff816123e5565b8114612c09575f80fd5b50565b5f81519050612c1a81612bf6565b92915050565b5f60208284031215612c3557612c34612312565b5b5f612c4284828501612c0c565b91505092915050565b5f60208284031215612c6057612c5f612312565b5b5f612c6d84828501612b6b565b91505092915050565b5f612c90612c8b612c868461231a565b612ad3565b61231a565b9050919050565b5f612ca182612c76565b9050919050565b5f612cb282612c97565b9050919050565b612cc281612ca8565b82525050565b5f604082019050612cdb5f830185612cb9565b612ce86020830184612418565b9392505050565b7f436f6e74726163742062616c616e6365206d75737420626520677265617465725f8201527f207468616e207a65726f00000000000000000000000000000000000000000000602082015250565b5f612d49602a83612269565b9150612d5482612cef565b604082019050919050565b5f6020820190508181035f830152612d7681612d3d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612dd7602483612269565b9150612de282612d7d565b604082019050919050565b5f6020820190508181035f830152612e0481612dcb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e65602283612269565b9150612e7082612e0b565b604082019050919050565b5f6020820190508181035f830152612e9281612e59565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ef3602583612269565b9150612efe82612e99565b604082019050919050565b5f6020820190508181035f830152612f2081612ee7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612f81602383612269565b9150612f8c82612f27565b604082019050919050565b5f6020820190508181035f830152612fae81612f75565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61300f602983612269565b915061301a82612fb5565b604082019050919050565b5f6020820190508181035f83015261303c81613003565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f613077601983612269565b915061308282613043565b602082019050919050565b5f6020820190508181035f8301526130a48161306b565b9050919050565b5f6130b582612374565b91506130c083612374565b92508282019050808211156130d8576130d76127ac565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613112601a83612269565b915061311d826130de565b602082019050919050565b5f6020820190508181035f83015261313f81613106565b9050919050565b5f61315082612374565b915061315b83612374565b9250828203905081811115613173576131726127ac565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131ab81612339565b82525050565b5f6131bc83836131a2565b60208301905092915050565b5f602082019050919050565b5f6131de82613179565b6131e88185613183565b93506131f383613193565b805f5b8381101561322357815161320a88826131b1565b9750613215836131c8565b9250506001810190506131f6565b5085935050505092915050565b5f60a0820190506132435f830188612418565b6132506020830187612afd565b818103604083015261326281866131d4565b90506132716060830185612676565b61327e6080830184612418565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132e2602183612269565b91506132ed82613288565b604082019050919050565b5f6020820190508181035f83015261330f816132d6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61334a601b83612269565b915061335582613316565b602082019050919050565b5f6020820190508181035f8301526133778161333e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200fb94007b5bbfa4c717f40fb4ef0f317c393b7710ef44390022dc9cf3b7539d264736f6c63430008140033

Deployed Bytecode

0x608060405260043610610122575f3560e01c8063751039fc1161009f57806395d89b411161006357806395d89b41146103ad578063a9059cbb146103d7578063bf474bed14610413578063dd62ed3e1461043d578063f42938901461047957610129565b8063751039fc146102dd57806377b54bad146102f35780637d1db4a51461032f5780638da5cb5b146103595780638f9a55c01461038357610129565b806323b872dd116100e657806323b872dd1461020f578063313ce5671461024b57806351bc3c851461027557806370a082311461028b578063715018a6146102c757610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f1461019357806312d0ecb5146101bd57806318160ddd146101e557610129565b3661012957005b5f80fd5b348015610138575f80fd5b5061014161048f565b60405161014e91906122e9565b60405180910390f35b348015610162575f80fd5b5061017d600480360381019061017891906123a7565b6104cc565b60405161018a91906123ff565b60405180910390f35b34801561019e575f80fd5b506101a76104e9565b6040516101b49190612427565b60405180910390f35b3480156101c8575f80fd5b506101e360048036038101906101de9190612580565b6104ef565b005b3480156101f0575f80fd5b506101f9610a9a565b6040516102069190612427565b60405180910390f35b34801561021a575f80fd5b50610235600480360381019061023091906125c7565b610abd565b60405161024291906123ff565b60405180910390f35b348015610256575f80fd5b5061025f610b91565b60405161026c9190612632565b60405180910390f35b348015610280575f80fd5b50610289610b99565b005b348015610296575f80fd5b506102b160048036038101906102ac919061264b565b610bd1565b6040516102be9190612427565b60405180910390f35b3480156102d2575f80fd5b506102db610c17565b005b3480156102e8575f80fd5b506102f1610d65565b005b3480156102fe575f80fd5b50610319600480360381019061031491906123a7565b610e94565b60405161032691906123ff565b60405180910390f35b34801561033a575f80fd5b50610343610ff4565b6040516103509190612427565b60405180910390f35b348015610364575f80fd5b5061036d610ffa565b60405161037a9190612685565b60405180910390f35b34801561038e575f80fd5b50610397611021565b6040516103a49190612427565b60405180910390f35b3480156103b8575f80fd5b506103c1611027565b6040516103ce91906122e9565b60405180910390f35b3480156103e2575f80fd5b506103fd60048036038101906103f891906123a7565b611064565b60405161040a91906123ff565b60405180910390f35b34801561041e575f80fd5b50610427611081565b6040516104349190612427565b60405180910390f35b348015610448575f80fd5b50610463600480360381019061045e919061269e565b611087565b6040516104709190612427565b60405180910390f35b348015610484575f80fd5b5061048d611109565b005b60606040518060400160405280601481526020017f4d414b4520494e5520475245415420414741494e000000000000000000000000815250905090565b5f6104df6104d86111b7565b84846111be565b6001905092915050565b60145481565b6104f76111b7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057a90612726565b60405180910390fd5b601660149054906101000a900460ff16156105d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ca9061278e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f61063130610bd1565b90505f606460468361064391906127d9565b61064d9190612847565b90505f61271060618461066091906127d9565b61066a9190612847565b90506106b43060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6106a091906129a6565b6302cd29c06106af91906127d9565b6111be565b5f5b84518110156106f5576106e38582815181106106d5576106d46129f0565b5b602002602001015183611064565b50806106ee90612a1d565b90506106b6565b5060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610760573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107849190612a78565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561080a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082e9190612a78565b6040518363ffffffff1660e01b815260040161084b929190612aa3565b6020604051808303815f875af1158015610867573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061088b9190612a78565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730855f80610914610ffa565b426040518863ffffffff1660e01b815260040161093696959493929190612b0c565b60606040518083038185885af1158015610952573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109779190612b7f565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610a17929190612bcf565b6020604051808303815f875af1158015610a33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a579190612c20565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff0219169083151502179055504360088190555050505050565b5f6009600a610aa991906129a6565b6302cd29c0610ab891906127d9565b905090565b5f610ac9848484611381565b610b8684610ad56111b7565b610b818560405180606001604052806028815260200161337f6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b386111b7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c999092919063ffffffff16565b6111be565b600190509392505050565b5f6009905090565b5f610ba330610bd1565b90505f811115610bb757610bb681611cfb565b5b5f4790505f811115610bcd57610bcc81611f66565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c1f6111b7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca290612726565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d6d6111b7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df090612726565b60405180910390fd5b6009600a610e0791906129a6565b6302cd29c0610e1691906127d9565b6011819055506009600a610e2a91906129a6565b6302cd29c0610e3991906127d9565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610e6e91906129a6565b6302cd29c0610e7d91906127d9565b604051610e8a9190612427565b60405180910390a1565b5f808203610f17578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ed59190612685565b602060405180830381865afa158015610ef0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f149190612c4b565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610f48929190612bcf565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610fac929190612cc8565b6020604051808303815f875af1158015610fc8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fec9190612c20565b905092915050565b60115481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600481526020017f4d49474100000000000000000000000000000000000000000000000000000000815250905090565b5f6110776110706111b7565b8484611381565b6001905092915050565b60135481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f471161114b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114290612d5f565b60405180910390fd5b5f47905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156111b3573d5f803e3d5ffd5b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361122c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122390612ded565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361129a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129190612e7b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113749190612427565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e690612f09565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145490612f97565b60405180910390fd5b5f811161149f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149690613025565b60405180910390fd5b5f6114a8610ffa565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561151657506114e6610ffa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119e9576115576064611549600d54601054116115365760095461153a565b600b545b8561206f90919063ffffffff16565b6120e690919063ffffffff16565b905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611602575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611655575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117385760115482111561169f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116969061308d565b60405180910390fd5b601254826116ac85610bd1565b6116b691906130ab565b11156116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee90613128565b60405180910390fd5b43600360085461170791906130ab565b1115611720576117168361212f565b1561171f575f80fd5b5b60105f81548092919061173290612a1d565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117dc575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561183a57601254826117ee85610bd1565b6117f891906130ab565b1115611839576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183090613128565b60405180910390fd5b5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118c257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119065761190360646118f5600e54601054116118e257600a546118e6565b600c545b8561206f90919063ffffffff16565b6120e690919063ffffffff16565b90505b5f61191030610bd1565b9050601660159054906101000a900460ff1615801561197b575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611991575060168054906101000a900460ff165b801561199e575060135481115b80156119ad5750600f54601054115b156119e7576119cf6119ca846119c584601454612140565b612140565b611cfb565b5f4790505f8111156119e5576119e447611f66565b5b505b505b5f811115611ae857611a418160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461215890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611adf9190612427565b60405180910390a35b611b388260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121b590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611bdb611b8f82846121b590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461215890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c7e84866121b590919063ffffffff16565b604051611c8b9190612427565b60405180910390a350505050565b5f838311158290611ce0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd791906122e9565b60405180910390fd5b505f8385611cee9190613146565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d3257611d31612444565b5b604051908082528060200260200182016040528015611d605781602001602082028036833780820191505090505b50905030815f81518110611d7757611d766129f0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e3f9190612a78565b81600181518110611e5357611e526129f0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611eb93060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111be565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f1b959493929190613230565b5f604051808303815f87803b158015611f32575f80fd5b505af1158015611f44573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b5f606460065483611f7791906127d9565b611f819190612847565b90505f606460075484611f9491906127d9565b611f9e9190612847565b905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015612004573d5f803e3d5ffd5b5060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612069573d5f803e3d5ffd5b50505050565b5f80830361207f575f90506120e0565b5f828461208c91906127d9565b905082848261209b9190612847565b146120db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d2906132f8565b60405180910390fd5b809150505b92915050565b5f61212783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121fe565b905092915050565b5f80823b90505f8111915050919050565b5f81831161214e5782612150565b815b905092915050565b5f80828461216691906130ab565b9050838110156121ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a290613360565b60405180910390fd5b8091505092915050565b5f6121f683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c99565b905092915050565b5f8083118290612244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223b91906122e9565b60405180910390fd5b505f83856122529190612847565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561229657808201518184015260208101905061227b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6122bb8261225f565b6122c58185612269565b93506122d5818560208601612279565b6122de816122a1565b840191505092915050565b5f6020820190508181035f83015261230181846122b1565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123438261231a565b9050919050565b61235381612339565b811461235d575f80fd5b50565b5f8135905061236e8161234a565b92915050565b5f819050919050565b61238681612374565b8114612390575f80fd5b50565b5f813590506123a18161237d565b92915050565b5f80604083850312156123bd576123bc612312565b5b5f6123ca85828601612360565b92505060206123db85828601612393565b9150509250929050565b5f8115159050919050565b6123f9816123e5565b82525050565b5f6020820190506124125f8301846123f0565b92915050565b61242181612374565b82525050565b5f60208201905061243a5f830184612418565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61247a826122a1565b810181811067ffffffffffffffff8211171561249957612498612444565b5b80604052505050565b5f6124ab612309565b90506124b78282612471565b919050565b5f67ffffffffffffffff8211156124d6576124d5612444565b5b602082029050602081019050919050565b5f80fd5b5f6124fd6124f8846124bc565b6124a2565b905080838252602082019050602084028301858111156125205761251f6124e7565b5b835b8181101561254957806125358882612360565b845260208401935050602081019050612522565b5050509392505050565b5f82601f83011261256757612566612440565b5b81356125778482602086016124eb565b91505092915050565b5f6020828403121561259557612594612312565b5b5f82013567ffffffffffffffff8111156125b2576125b1612316565b5b6125be84828501612553565b91505092915050565b5f805f606084860312156125de576125dd612312565b5b5f6125eb86828701612360565b93505060206125fc86828701612360565b925050604061260d86828701612393565b9150509250925092565b5f60ff82169050919050565b61262c81612617565b82525050565b5f6020820190506126455f830184612623565b92915050565b5f602082840312156126605761265f612312565b5b5f61266d84828501612360565b91505092915050565b61267f81612339565b82525050565b5f6020820190506126985f830184612676565b92915050565b5f80604083850312156126b4576126b3612312565b5b5f6126c185828601612360565b92505060206126d285828601612360565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612710602083612269565b915061271b826126dc565b602082019050919050565b5f6020820190508181035f83015261273d81612704565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612778601783612269565b915061278382612744565b602082019050919050565b5f6020820190508181035f8301526127a58161276c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6127e382612374565b91506127ee83612374565b92508282026127fc81612374565b91508282048414831517612813576128126127ac565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61285182612374565b915061285c83612374565b92508261286c5761286b61281a565b5b828204905092915050565b5f8160011c9050919050565b5f808291508390505b60018511156128cc578086048111156128a8576128a76127ac565b5b60018516156128b75780820291505b80810290506128c585612877565b945061288c565b94509492505050565b5f826128e4576001905061299f565b816128f1575f905061299f565b8160018114612907576002811461291157612940565b600191505061299f565b60ff841115612923576129226127ac565b5b8360020a91508482111561293a576129396127ac565b5b5061299f565b5060208310610133831016604e8410600b84101617156129755782820a9050838111156129705761296f6127ac565b5b61299f565b6129828484846001612883565b92509050818404811115612999576129986127ac565b5b81810290505b9392505050565b5f6129b082612374565b91506129bb83612617565b92506129e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846128d5565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612a2782612374565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a5957612a586127ac565b5b600182019050919050565b5f81519050612a728161234a565b92915050565b5f60208284031215612a8d57612a8c612312565b5b5f612a9a84828501612a64565b91505092915050565b5f604082019050612ab65f830185612676565b612ac36020830184612676565b9392505050565b5f819050919050565b5f819050919050565b5f612af6612af1612aec84612aca565b612ad3565b612374565b9050919050565b612b0681612adc565b82525050565b5f60c082019050612b1f5f830189612676565b612b2c6020830188612418565b612b396040830187612afd565b612b466060830186612afd565b612b536080830185612676565b612b6060a0830184612418565b979650505050505050565b5f81519050612b798161237d565b92915050565b5f805f60608486031215612b9657612b95612312565b5b5f612ba386828701612b6b565b9350506020612bb486828701612b6b565b9250506040612bc586828701612b6b565b9150509250925092565b5f604082019050612be25f830185612676565b612bef6020830184612418565b9392505050565b612bff816123e5565b8114612c09575f80fd5b50565b5f81519050612c1a81612bf6565b92915050565b5f60208284031215612c3557612c34612312565b5b5f612c4284828501612c0c565b91505092915050565b5f60208284031215612c6057612c5f612312565b5b5f612c6d84828501612b6b565b91505092915050565b5f612c90612c8b612c868461231a565b612ad3565b61231a565b9050919050565b5f612ca182612c76565b9050919050565b5f612cb282612c97565b9050919050565b612cc281612ca8565b82525050565b5f604082019050612cdb5f830185612cb9565b612ce86020830184612418565b9392505050565b7f436f6e74726163742062616c616e6365206d75737420626520677265617465725f8201527f207468616e207a65726f00000000000000000000000000000000000000000000602082015250565b5f612d49602a83612269565b9150612d5482612cef565b604082019050919050565b5f6020820190508181035f830152612d7681612d3d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612dd7602483612269565b9150612de282612d7d565b604082019050919050565b5f6020820190508181035f830152612e0481612dcb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e65602283612269565b9150612e7082612e0b565b604082019050919050565b5f6020820190508181035f830152612e9281612e59565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ef3602583612269565b9150612efe82612e99565b604082019050919050565b5f6020820190508181035f830152612f2081612ee7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612f81602383612269565b9150612f8c82612f27565b604082019050919050565b5f6020820190508181035f830152612fae81612f75565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61300f602983612269565b915061301a82612fb5565b604082019050919050565b5f6020820190508181035f83015261303c81613003565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f613077601983612269565b915061308282613043565b602082019050919050565b5f6020820190508181035f8301526130a48161306b565b9050919050565b5f6130b582612374565b91506130c083612374565b92508282019050808211156130d8576130d76127ac565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613112601a83612269565b915061311d826130de565b602082019050919050565b5f6020820190508181035f83015261313f81613106565b9050919050565b5f61315082612374565b915061315b83612374565b9250828203905081811115613173576131726127ac565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131ab81612339565b82525050565b5f6131bc83836131a2565b60208301905092915050565b5f602082019050919050565b5f6131de82613179565b6131e88185613183565b93506131f383613193565b805f5b8381101561322357815161320a88826131b1565b9750613215836131c8565b9250506001810190506131f6565b5085935050505092915050565b5f60a0820190506132435f830188612418565b6132506020830187612afd565b818103604083015261326281866131d4565b90506132716060830185612676565b61327e6080830184612418565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132e2602183612269565b91506132ed82613288565b604082019050919050565b5f6020820190508181035f83015261330f816132d6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61334a601b83612269565b915061335582613316565b602082019050919050565b5f6020820190508181035f8301526133778161333e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200fb94007b5bbfa4c717f40fb4ef0f317c393b7710ef44390022dc9cf3b7539d264736f6c63430008140033

Deployed Bytecode Sourcemap

3596:9274:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5725:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6558:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4809:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11730:1100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6002:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6727:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5911:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11419:303;;;;;;;;;;;;;:::i;:::-;;6105:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2677:148;;;;;;;;;;;;;:::i;:::-;;10381:159;;;;;;;;;;;;;:::i;:::-;;10850:324;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4625:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2463:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4686:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5816:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6232:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4747:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6407:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11182:228;;;;;;;;;;;;;:::i;:::-;;5725:83;5762:13;5795:5;;;;;;;;;;;;;;;;;5788:12;;5725:83;:::o;6558:161::-;6633:4;6650:39;6659:12;:10;:12::i;:::-;6673:7;6682:6;6650:8;:39::i;:::-;6707:4;6700:11;;6558:161;;;;:::o;4809:50::-;;;;:::o;11730:1100::-;2600:12;:10;:12::i;:::-;2590:22;;:6;;;;;;;;;;:22;;;2582:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11820:11:::1;;;;;;;;;;;11819:12;11811:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11906:42;11869:15;;:80;;;;;;;;;;;;;;;;;;11960:22;11985:24;12003:4;11985:9;:24::i;:::-;11960:49;;12020:12;12057:3;12052:2;12035:14;:19;;;;:::i;:::-;:25;;;;:::i;:::-;12020:40;;12071:10;12106:5;12101:2;12084:14;:19;;;;:::i;:::-;:27;;;;:::i;:::-;12071:40;;12122:58;12139:4;12154:15;;;;;;;;;;;4429:1;4483:2;:13;;;;:::i;:::-;4472:8;:24;;;;:::i;:::-;12122:8;:58::i;:::-;12203:9;12199:94;12218:9;:16;12214:1;:20;12199:94;;;12255:26;12264:9;12274:1;12264:12;;;;;;;;:::i;:::-;;;;;;;;12278:2;12255:8;:26::i;:::-;;12236:3;;;;:::i;:::-;;;12199:94;;;;12450:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12432:55;;;12496:4;12503:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12432:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12416:13;;:110;;;;;;;;;;;;;;;;;;12537:15;;;;;;;;;;;:31;;;12576:21;12607:4;12613;12618:1;12620::::0;12622:7:::1;:5;:7::i;:::-;12630:15;12537:109;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12664:13;;;;;;;;;;;12657:29;;;12695:15;;;;;;;;;;;12713:14;12657:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12753:4;12739:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;12782:4;12768:11;;:18;;;;;;;;;;;;;;;;;;12810:12;12797:10;:25;;;;11800:1030;;;11730:1100:::0;:::o;6002:95::-;6055:7;4429:1;4483:2;:13;;;;:::i;:::-;4472:8;:24;;;;:::i;:::-;6075:14;;6002:95;:::o;6727:313::-;6825:4;6842:36;6852:6;6860:9;6871:6;6842:9;:36::i;:::-;6889:121;6898:6;6906:12;:10;:12::i;:::-;6920:89;6958:6;6920:89;;;;;;;;;;;;;;;;;:11;:19;6932:6;6920:19;;;;;;;;;;;;;;;:33;6940:12;:10;:12::i;:::-;6920:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6889:8;:121::i;:::-;7028:4;7021:11;;6727:313;;;;;:::o;5911:83::-;5952:5;4429:1;5970:16;;5911:83;:::o;11419:303::-;11460:20;11481:24;11499:4;11481:9;:24::i;:::-;11460:45;;11532:1;11519:12;:14;11516:73;;;11547:30;11564:12;11547:16;:30::i;:::-;11516:73;11599:18;11618:21;11599:40;;11664:1;11653:10;:12;11650:65;;;11679:24;11692:10;11679:12;:24::i;:::-;11650:65;11449:273;;11419:303::o;6105:119::-;6171:7;6198:9;:18;6208:7;6198:18;;;;;;;;;;;;;;;;6191:25;;6105:119;;;:::o;2677:148::-;2600:12;:10;:12::i;:::-;2590:22;;:6;;;;;;;;;;:22;;;2582:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2784:1:::1;2747:40;;2768:6;::::0;::::1;;;;;;;;2747:40;;;;;;;;;;;;2815:1;2798:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2677:148::o:0;10381:159::-;2600:12;:10;:12::i;:::-;2590:22;;:6;;;;;;;;;;:22;;;2582:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4429:1:::1;4483:2;:13;;;;:::i;:::-;4472:8;:24;;;;:::i;:::-;10434:12;:22;;;;4429:1;4483:2;:13;;;;:::i;:::-;4472:8;:24;;;;:::i;:::-;10467:14;:22;;;;10505:27;4429:1;4483:2;:13;;;;:::i;:::-;4472:8;:24;;;;:::i;:::-;10505:27;;;;;;:::i;:::-;;;;;;;;10381:159::o:0;10850:324::-;10931:12;10969:1;10959:6;:11;10956:96;;11002:12;10995:30;;;11034:4;10995:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10986:54;;10956:96;11067:32;11078:12;11092:6;11067:32;;;;;;;:::i;:::-;;;;;;;;11124:12;11117:29;;;11147:10;;;;;;;;;;;11159:6;11117:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11110:56;;10850:324;;;;:::o;4625:54::-;;;;:::o;2463:79::-;2501:7;2528:6;;;;;;;;;;;2521:13;;2463:79;:::o;4686:54::-;;;;:::o;5816:87::-;5855:13;5888:7;;;;;;;;;;;;;;;;;5881:14;;5816:87;:::o;6232:167::-;6310:4;6327:42;6337:12;:10;:12::i;:::-;6351:9;6362:6;6327:9;:42::i;:::-;6387:4;6380:11;;6232:167;;;;:::o;4747:55::-;;;;:::o;6407:143::-;6488:7;6515:11;:18;6527:5;6515:18;;;;;;;;;;;;;;;:27;6534:7;6515:27;;;;;;;;;;;;;;;;6508:34;;6407:143;;;;:::o;11182:228::-;11256:1;11232:21;:25;11224:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;11315:15;11333:21;11315:39;;11373:10;;;;;;;;;;;11365:28;;:37;11394:7;11365:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11213:197;11182:228::o;218:98::-;271:7;298:10;291:17;;218:98;:::o;7048:335::-;7158:1;7141:19;;:5;:19;;;7133:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7239:1;7220:21;;:7;:21;;;7212:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7321:6;7291:11;:18;7303:5;7291:18;;;;;;;;;;;;;;;:27;7310:7;7291:27;;;;;;;;;;;;;;;:36;;;;7359:7;7343:32;;7352:5;7343:32;;;7368:6;7343:32;;;;;;:::i;:::-;;;;;;;;7048:335;;;:::o;7391:2180::-;7495:1;7479:18;;:4;:18;;;7471:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7572:1;7558:16;;:2;:16;;;7550:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7642:1;7633:6;:10;7625:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7700:17;7742:7;:5;:7::i;:::-;7734:15;;:4;:15;;;;:32;;;;;7759:7;:5;:7::i;:::-;7753:13;;:2;:13;;;;7734:32;7730:1485;;;7795:76;7867:3;7795:67;7817:15;;7807:9;;:25;7806:55;;7847:14;;7806:55;;;7834:12;;7806:55;7795:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7783:88;;7900:13;;;;;;;;;;;7892:21;;:4;:21;;;:55;;;;;7931:15;;;;;;;;;;;7917:30;;:2;:30;;;;7892:55;:83;;;;;7953:18;:22;7972:2;7953:22;;;;;;;;;;;;;;;;;;;;;;;;;7951:24;7892:83;7888:436;;;8015:12;;8005:6;:22;;7997:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8110:14;;8100:6;8084:13;8094:2;8084:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8076:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8198:12;8193:1;8180:10;;:14;;;;:::i;:::-;:30;8176:103;;;8244:14;8255:2;8244:10;:14::i;:::-;8243:15;8235:24;;;;;;8176:103;8297:9;;:11;;;;;;;;;:::i;:::-;;;;;;7888:436;8350:13;;;;;;;;;;;8344:19;;:2;:19;;;;:47;;;;;8369:18;:22;8388:2;8369:22;;;;;;;;;;;;;;;;;;;;;;;;;8367:24;8344:47;8340:167;;;8446:14;;8436:6;8420:13;8430:2;8420:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8412:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8340:167;8532:13;;;;;;;;;;;8526:19;;:2;:19;;;:43;;;;;8564:4;8549:20;;:4;:20;;;;8526:43;8523:174;;;8602:79;8677:3;8602:70;8624:16;;8614:9;;:26;8613:58;;8656:15;;8613:58;;;8642:13;;8613:58;8602:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8590:91;;8523:174;8713:28;8744:24;8762:4;8744:9;:24::i;:::-;8713:55;;8788:6;;;;;;;;;;;8787:7;:32;;;;;8806:13;;;;;;;;;;;8798:21;;:2;:21;;;8787:32;:47;;;;;8823:11;;;;;;;;;;8787:47;:89;;;;;8859:17;;8838:20;:38;8787:89;:121;;;;;8890:18;;8880:9;;:28;8787:121;8783:421;;;8929:67;8946:49;8950:6;8957:37;8961:20;8982:11;;8957:3;:37::i;:::-;8946:3;:49::i;:::-;8929:16;:67::i;:::-;9015:26;9044:21;9015:50;;9108:1;9087:18;:22;9084:105;;;9134:35;9147:21;9134:12;:35::i;:::-;9084:105;8910:294;8783:421;7768:1447;7730:1485;9240:1;9230:9;:11;9227:161;;;9280:39;9309:9;9280;:24;9298:4;9280:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9255:9;:24;9273:4;9255:24;;;;;;;;;;;;;;;:64;;;;9360:4;9337:39;;9346:4;9337:39;;;9366:9;9337:39;;;;;;:::i;:::-;;;;;;;;9227:161;9414:27;9434:6;9414:9;:15;9424:4;9414:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9398:9;:15;9408:4;9398:15;;;;;;;;;;;;;;;:43;;;;9466:40;9484:21;9495:9;9484:6;:10;;:21;;;;:::i;:::-;9466:9;:13;9476:2;9466:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9452:9;:13;9462:2;9452:13;;;;;;;;;;;;;;;:54;;;;9537:2;9522:41;;9531:4;9522:41;;;9541:21;9552:9;9541:6;:10;;:21;;;;:::i;:::-;9522:41;;;;;;:::i;:::-;;;;;;;;7460:2111;7391:2180;;;:::o;1355:190::-;1441:7;1474:1;1469;:6;;1477:12;1461:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1501:9;1517:1;1513;:5;;;;:::i;:::-;1501:17;;1536:1;1529:8;;;1355:190;;;;;:::o;9890:483::-;5257:4;5248:6;;:13;;;;;;;;;;;;;;;;;;9968:21:::1;10006:1;9992:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9968:40;;10037:4;10019;10024:1;10019:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10063:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10053:4;10058:1;10053:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10096:62;10113:4;10128:15;;;;;;;;;;;10146:11;10096:8;:62::i;:::-;10169:15;;;;;;;;;;;:66;;;10250:11;10276:1;10292:4;10319;10339:15;10169:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9957:416;5293:5:::0;5284:6;;:14;;;;;;;;;;;;;;;;;;9890:483;:::o;10548:294::-;10605:22;10662:3;10639:20;;10630:6;:29;;;;:::i;:::-;:35;;;;:::i;:::-;10605:60;;10676:23;10735:3;10711:21;;10702:6;:30;;;;:::i;:::-;:36;;;;:::i;:::-;10676:62;;10751:10;;;;;;;;;;;:19;;:35;10771:14;10751:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10797:11;;;;;;;;;;;:20;;:37;10818:15;10797:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10594:248;;10548:294;:::o;1553:246::-;1611:7;1640:1;1635;:6;1631:47;;1665:1;1658:8;;;;1631:47;1688:9;1704:1;1700;:5;;;;:::i;:::-;1688:17;;1733:1;1728;1724;:5;;;;:::i;:::-;:10;1716:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1790:1;1783:8;;;1553:246;;;;;:::o;1807:132::-;1865:7;1892:39;1896:1;1899;1892:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1885:46;;1807:132;;;;:::o;9687:195::-;9746:4;9763:12;9830:7;9818:20;9810:28;;9873:1;9866:4;:8;9859:15;;;9687:195;;;:::o;9581:98::-;9638:7;9665:1;9663;:3;9662:9;;9670:1;9662:9;;;9668:1;9662:9;9655:16;;9581:98;;;;:::o;1024:179::-;1082:7;1102:9;1118:1;1114;:5;;;;:::i;:::-;1102:17;;1143:1;1138;:6;;1130:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1194:1;1187:8;;;1024:179;;;;:::o;1211:136::-;1269:7;1296:43;1300:1;1303;1296:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1289:50;;1211:136;;;;:::o;1947:189::-;2033:7;2065:1;2061;:5;2068:12;2053:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2092:9;2108:1;2104;:5;;;;:::i;:::-;2092:17;;2127:1;2120:8;;;1947: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:117::-;3907:1;3904;3897:12;3921:180;3969:77;3966:1;3959:88;4066:4;4063:1;4056:15;4090:4;4087:1;4080:15;4107:281;4190:27;4212:4;4190:27;:::i;:::-;4182:6;4178:40;4320:6;4308:10;4305:22;4284:18;4272:10;4269:34;4266:62;4263:88;;;4331:18;;:::i;:::-;4263:88;4371:10;4367:2;4360:22;4150:238;4107:281;;:::o;4394:129::-;4428:6;4455:20;;:::i;:::-;4445:30;;4484:33;4512:4;4504:6;4484:33;:::i;:::-;4394:129;;;:::o;4529:311::-;4606:4;4696:18;4688:6;4685:30;4682:56;;;4718:18;;:::i;:::-;4682:56;4768:4;4760:6;4756:17;4748:25;;4828:4;4822;4818:15;4810:23;;4529:311;;;:::o;4846:117::-;4955:1;4952;4945:12;4986:710;5082:5;5107:81;5123:64;5180:6;5123:64;:::i;:::-;5107:81;:::i;:::-;5098:90;;5208:5;5237:6;5230:5;5223:21;5271:4;5264:5;5260:16;5253:23;;5324:4;5316:6;5312:17;5304:6;5300:30;5353:3;5345:6;5342:15;5339:122;;;5372:79;;:::i;:::-;5339:122;5487:6;5470:220;5504:6;5499:3;5496:15;5470:220;;;5579:3;5608:37;5641:3;5629:10;5608:37;:::i;:::-;5603:3;5596:50;5675:4;5670:3;5666:14;5659:21;;5546:144;5530:4;5525:3;5521:14;5514:21;;5470:220;;;5474:21;5088:608;;4986:710;;;;;:::o;5719:370::-;5790:5;5839:3;5832:4;5824:6;5820:17;5816:27;5806:122;;5847:79;;:::i;:::-;5806:122;5964:6;5951:20;5989:94;6079:3;6071:6;6064:4;6056:6;6052:17;5989:94;:::i;:::-;5980:103;;5796:293;5719:370;;;;:::o;6095:539::-;6179:6;6228:2;6216:9;6207:7;6203:23;6199:32;6196:119;;;6234:79;;:::i;:::-;6196:119;6382:1;6371:9;6367:17;6354:31;6412:18;6404:6;6401:30;6398:117;;;6434:79;;:::i;:::-;6398:117;6539:78;6609:7;6600:6;6589:9;6585:22;6539:78;:::i;:::-;6529:88;;6325:302;6095:539;;;;:::o;6640:619::-;6717:6;6725;6733;6782:2;6770:9;6761:7;6757:23;6753:32;6750:119;;;6788:79;;:::i;:::-;6750:119;6908:1;6933:53;6978:7;6969:6;6958:9;6954:22;6933:53;:::i;:::-;6923:63;;6879:117;7035:2;7061:53;7106:7;7097:6;7086:9;7082:22;7061:53;:::i;:::-;7051:63;;7006:118;7163:2;7189:53;7234:7;7225:6;7214:9;7210:22;7189:53;:::i;:::-;7179:63;;7134:118;6640:619;;;;;:::o;7265:86::-;7300:7;7340:4;7333:5;7329:16;7318:27;;7265:86;;;:::o;7357:112::-;7440:22;7456:5;7440:22;:::i;:::-;7435:3;7428:35;7357:112;;:::o;7475:214::-;7564:4;7602:2;7591:9;7587:18;7579:26;;7615:67;7679:1;7668:9;7664:17;7655:6;7615:67;:::i;:::-;7475:214;;;;:::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:118::-;8117:24;8135:5;8117:24;:::i;:::-;8112:3;8105:37;8030:118;;:::o;8154:222::-;8247:4;8285:2;8274:9;8270:18;8262:26;;8298:71;8366:1;8355:9;8351:17;8342:6;8298:71;:::i;:::-;8154:222;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:182::-;9002:34;8998:1;8990:6;8986:14;8979:58;8862:182;:::o;9050:366::-;9192:3;9213:67;9277:2;9272:3;9213:67;:::i;:::-;9206:74;;9289:93;9378:3;9289:93;:::i;:::-;9407:2;9402:3;9398:12;9391:19;;9050:366;;;:::o;9422:419::-;9588:4;9626:2;9615:9;9611:18;9603:26;;9675:9;9669:4;9665:20;9661:1;9650:9;9646:17;9639:47;9703:131;9829:4;9703:131;:::i;:::-;9695:139;;9422:419;;;:::o;9847:173::-;9987:25;9983:1;9975:6;9971:14;9964:49;9847:173;:::o;10026:366::-;10168:3;10189:67;10253:2;10248:3;10189:67;:::i;:::-;10182:74;;10265:93;10354:3;10265:93;:::i;:::-;10383:2;10378:3;10374:12;10367:19;;10026:366;;;:::o;10398:419::-;10564:4;10602:2;10591:9;10587:18;10579:26;;10651:9;10645:4;10641:20;10637:1;10626:9;10622:17;10615:47;10679:131;10805:4;10679:131;:::i;:::-;10671:139;;10398:419;;;:::o;10823:180::-;10871:77;10868:1;10861:88;10968:4;10965:1;10958:15;10992:4;10989:1;10982:15;11009:410;11049:7;11072:20;11090:1;11072:20;:::i;:::-;11067:25;;11106:20;11124:1;11106:20;:::i;:::-;11101:25;;11161:1;11158;11154:9;11183:30;11201:11;11183:30;:::i;:::-;11172:41;;11362:1;11353:7;11349:15;11346:1;11343:22;11323:1;11316:9;11296:83;11273:139;;11392:18;;:::i;:::-;11273:139;11057:362;11009:410;;;;:::o;11425:180::-;11473:77;11470:1;11463:88;11570:4;11567:1;11560:15;11594:4;11591:1;11584:15;11611:185;11651:1;11668:20;11686:1;11668:20;:::i;:::-;11663:25;;11702:20;11720:1;11702:20;:::i;:::-;11697:25;;11741:1;11731:35;;11746:18;;:::i;:::-;11731:35;11788:1;11785;11781:9;11776:14;;11611:185;;;;:::o;11802:102::-;11844:8;11891:5;11888:1;11884:13;11863:34;;11802:102;;;:::o;11910:848::-;11971:5;11978:4;12002:6;11993:15;;12026:5;12017:14;;12040:712;12061:1;12051:8;12048:15;12040:712;;;12156:4;12151:3;12147:14;12141:4;12138:24;12135:50;;;12165:18;;:::i;:::-;12135:50;12215:1;12205:8;12201:16;12198:451;;;12630:4;12623:5;12619:16;12610:25;;12198:451;12680:4;12674;12670:15;12662:23;;12710:32;12733:8;12710:32;:::i;:::-;12698:44;;12040:712;;;11910:848;;;;;;;:::o;12764:1073::-;12818:5;13009:8;12999:40;;13030:1;13021:10;;13032:5;;12999:40;13058:4;13048:36;;13075:1;13066:10;;13077:5;;13048:36;13144:4;13192:1;13187:27;;;;13228:1;13223:191;;;;13137:277;;13187:27;13205:1;13196:10;;13207:5;;;13223:191;13268:3;13258:8;13255:17;13252:43;;;13275:18;;:::i;:::-;13252:43;13324:8;13321:1;13317:16;13308:25;;13359:3;13352:5;13349:14;13346:40;;;13366:18;;:::i;:::-;13346:40;13399:5;;;13137:277;;13523:2;13513:8;13510:16;13504:3;13498:4;13495:13;13491:36;13473:2;13463:8;13460:16;13455:2;13449:4;13446:12;13442:35;13426:111;13423:246;;;13579:8;13573:4;13569:19;13560:28;;13614:3;13607:5;13604:14;13601:40;;;13621:18;;:::i;:::-;13601:40;13654:5;;13423:246;13694:42;13732:3;13722:8;13716:4;13713:1;13694:42;:::i;:::-;13679:57;;;;13768:4;13763:3;13759:14;13752:5;13749:25;13746:51;;;13777:18;;:::i;:::-;13746:51;13826:4;13819:5;13815:16;13806:25;;12764:1073;;;;;;:::o;13843:281::-;13901:5;13925:23;13943:4;13925:23;:::i;:::-;13917:31;;13969:25;13985:8;13969:25;:::i;:::-;13957:37;;14013:104;14050:66;14040:8;14034:4;14013:104;:::i;:::-;14004:113;;13843:281;;;;:::o;14130:180::-;14178:77;14175:1;14168:88;14275:4;14272:1;14265:15;14299:4;14296:1;14289:15;14316:233;14355:3;14378:24;14396:5;14378:24;:::i;:::-;14369:33;;14424:66;14417:5;14414:77;14411:103;;14494:18;;:::i;:::-;14411:103;14541:1;14534:5;14530:13;14523:20;;14316:233;;;:::o;14555:143::-;14612:5;14643:6;14637:13;14628:22;;14659:33;14686:5;14659:33;:::i;:::-;14555:143;;;;:::o;14704:351::-;14774:6;14823:2;14811:9;14802:7;14798:23;14794:32;14791:119;;;14829:79;;:::i;:::-;14791:119;14949:1;14974:64;15030:7;15021:6;15010:9;15006:22;14974:64;:::i;:::-;14964:74;;14920:128;14704:351;;;;:::o;15061:332::-;15182:4;15220:2;15209:9;15205:18;15197:26;;15233:71;15301:1;15290:9;15286:17;15277:6;15233:71;:::i;:::-;15314:72;15382:2;15371:9;15367:18;15358:6;15314:72;:::i;:::-;15061:332;;;;;:::o;15399:85::-;15444:7;15473:5;15462:16;;15399:85;;;:::o;15490:60::-;15518:3;15539:5;15532:12;;15490:60;;;:::o;15556:158::-;15614:9;15647:61;15665:42;15674:32;15700:5;15674:32;:::i;:::-;15665:42;:::i;:::-;15647:61;:::i;:::-;15634:74;;15556:158;;;:::o;15720:147::-;15815:45;15854:5;15815:45;:::i;:::-;15810:3;15803:58;15720:147;;:::o;15873:807::-;16122:4;16160:3;16149:9;16145:19;16137:27;;16174:71;16242:1;16231:9;16227:17;16218:6;16174:71;:::i;:::-;16255:72;16323:2;16312:9;16308:18;16299:6;16255:72;:::i;:::-;16337:80;16413:2;16402:9;16398:18;16389:6;16337:80;:::i;:::-;16427;16503:2;16492:9;16488:18;16479:6;16427:80;:::i;:::-;16517:73;16585:3;16574:9;16570:19;16561:6;16517:73;:::i;:::-;16600;16668:3;16657:9;16653:19;16644:6;16600:73;:::i;:::-;15873:807;;;;;;;;;:::o;16686:143::-;16743:5;16774:6;16768:13;16759:22;;16790:33;16817:5;16790:33;:::i;:::-;16686:143;;;;:::o;16835:663::-;16923:6;16931;16939;16988:2;16976:9;16967:7;16963:23;16959:32;16956:119;;;16994:79;;:::i;:::-;16956:119;17114:1;17139:64;17195:7;17186:6;17175:9;17171:22;17139:64;:::i;:::-;17129:74;;17085:128;17252:2;17278:64;17334:7;17325:6;17314:9;17310:22;17278:64;:::i;:::-;17268:74;;17223:129;17391:2;17417:64;17473:7;17464:6;17453:9;17449:22;17417:64;:::i;:::-;17407:74;;17362:129;16835:663;;;;;:::o;17504:332::-;17625:4;17663:2;17652:9;17648:18;17640:26;;17676:71;17744:1;17733:9;17729:17;17720:6;17676:71;:::i;:::-;17757:72;17825:2;17814:9;17810:18;17801:6;17757:72;:::i;:::-;17504:332;;;;;:::o;17842:116::-;17912:21;17927:5;17912:21;:::i;:::-;17905:5;17902:32;17892:60;;17948:1;17945;17938:12;17892:60;17842:116;:::o;17964:137::-;18018:5;18049:6;18043:13;18034:22;;18065:30;18089:5;18065:30;:::i;:::-;17964:137;;;;:::o;18107:345::-;18174:6;18223:2;18211:9;18202:7;18198:23;18194:32;18191:119;;;18229:79;;:::i;:::-;18191:119;18349:1;18374:61;18427:7;18418:6;18407:9;18403:22;18374:61;:::i;:::-;18364:71;;18320:125;18107:345;;;;:::o;18458:351::-;18528:6;18577:2;18565:9;18556:7;18552:23;18548:32;18545:119;;;18583:79;;:::i;:::-;18545:119;18703:1;18728:64;18784:7;18775:6;18764:9;18760:22;18728:64;:::i;:::-;18718:74;;18674:128;18458:351;;;;:::o;18815:142::-;18865:9;18898:53;18916:34;18925:24;18943:5;18925:24;:::i;:::-;18916:34;:::i;:::-;18898:53;:::i;:::-;18885:66;;18815:142;;;:::o;18963:126::-;19013:9;19046:37;19077:5;19046:37;:::i;:::-;19033:50;;18963:126;;;:::o;19095:134::-;19153:9;19186:37;19217:5;19186:37;:::i;:::-;19173:50;;19095:134;;;:::o;19235:147::-;19330:45;19369:5;19330:45;:::i;:::-;19325:3;19318:58;19235:147;;:::o;19388:348::-;19517:4;19555:2;19544:9;19540:18;19532:26;;19568:79;19644:1;19633:9;19629:17;19620:6;19568:79;:::i;:::-;19657:72;19725:2;19714:9;19710:18;19701:6;19657:72;:::i;:::-;19388:348;;;;;:::o;19742:229::-;19882:34;19878:1;19870:6;19866:14;19859:58;19951:12;19946:2;19938:6;19934:15;19927:37;19742:229;:::o;19977:366::-;20119:3;20140:67;20204:2;20199:3;20140:67;:::i;:::-;20133:74;;20216:93;20305:3;20216:93;:::i;:::-;20334:2;20329:3;20325:12;20318:19;;19977:366;;;:::o;20349:419::-;20515:4;20553:2;20542:9;20538:18;20530:26;;20602:9;20596:4;20592:20;20588:1;20577:9;20573:17;20566:47;20630:131;20756:4;20630:131;:::i;:::-;20622:139;;20349:419;;;:::o;20774:223::-;20914:34;20910:1;20902:6;20898:14;20891:58;20983:6;20978:2;20970:6;20966:15;20959:31;20774:223;:::o;21003:366::-;21145:3;21166:67;21230:2;21225:3;21166:67;:::i;:::-;21159:74;;21242:93;21331:3;21242:93;:::i;:::-;21360:2;21355:3;21351:12;21344:19;;21003:366;;;:::o;21375:419::-;21541:4;21579:2;21568:9;21564:18;21556:26;;21628:9;21622:4;21618:20;21614:1;21603:9;21599:17;21592:47;21656:131;21782:4;21656:131;:::i;:::-;21648:139;;21375:419;;;:::o;21800:221::-;21940:34;21936:1;21928:6;21924:14;21917:58;22009:4;22004:2;21996:6;21992:15;21985:29;21800:221;:::o;22027:366::-;22169:3;22190:67;22254:2;22249:3;22190:67;:::i;:::-;22183:74;;22266:93;22355:3;22266:93;:::i;:::-;22384:2;22379:3;22375:12;22368:19;;22027:366;;;:::o;22399:419::-;22565:4;22603:2;22592:9;22588:18;22580:26;;22652:9;22646:4;22642:20;22638:1;22627:9;22623:17;22616:47;22680:131;22806:4;22680:131;:::i;:::-;22672:139;;22399:419;;;:::o;22824:224::-;22964:34;22960:1;22952:6;22948:14;22941:58;23033:7;23028:2;23020:6;23016:15;23009:32;22824:224;:::o;23054:366::-;23196:3;23217:67;23281:2;23276:3;23217:67;:::i;:::-;23210:74;;23293:93;23382:3;23293:93;:::i;:::-;23411:2;23406:3;23402:12;23395:19;;23054:366;;;:::o;23426:419::-;23592:4;23630:2;23619:9;23615:18;23607:26;;23679:9;23673:4;23669:20;23665:1;23654:9;23650:17;23643:47;23707:131;23833:4;23707:131;:::i;:::-;23699:139;;23426:419;;;:::o;23851:222::-;23991:34;23987:1;23979:6;23975:14;23968:58;24060:5;24055:2;24047:6;24043:15;24036:30;23851:222;:::o;24079:366::-;24221:3;24242:67;24306:2;24301:3;24242:67;:::i;:::-;24235:74;;24318:93;24407:3;24318:93;:::i;:::-;24436:2;24431:3;24427:12;24420:19;;24079:366;;;:::o;24451:419::-;24617:4;24655:2;24644:9;24640:18;24632:26;;24704:9;24698:4;24694:20;24690:1;24679:9;24675:17;24668:47;24732:131;24858:4;24732:131;:::i;:::-;24724:139;;24451:419;;;:::o;24876:228::-;25016:34;25012:1;25004:6;25000:14;24993:58;25085:11;25080:2;25072:6;25068:15;25061:36;24876:228;:::o;25110:366::-;25252:3;25273:67;25337:2;25332:3;25273:67;:::i;:::-;25266:74;;25349:93;25438:3;25349:93;:::i;:::-;25467:2;25462:3;25458:12;25451:19;;25110:366;;;:::o;25482:419::-;25648:4;25686:2;25675:9;25671:18;25663:26;;25735:9;25729:4;25725:20;25721:1;25710:9;25706:17;25699:47;25763:131;25889:4;25763:131;:::i;:::-;25755:139;;25482:419;;;:::o;25907:175::-;26047:27;26043:1;26035:6;26031:14;26024:51;25907:175;:::o;26088:366::-;26230:3;26251:67;26315:2;26310:3;26251:67;:::i;:::-;26244:74;;26327:93;26416:3;26327:93;:::i;:::-;26445:2;26440:3;26436:12;26429:19;;26088:366;;;:::o;26460:419::-;26626:4;26664:2;26653:9;26649:18;26641:26;;26713:9;26707:4;26703:20;26699:1;26688:9;26684:17;26677:47;26741:131;26867:4;26741:131;:::i;:::-;26733:139;;26460:419;;;:::o;26885:191::-;26925:3;26944:20;26962:1;26944:20;:::i;:::-;26939:25;;26978:20;26996:1;26978:20;:::i;:::-;26973:25;;27021:1;27018;27014:9;27007:16;;27042:3;27039:1;27036:10;27033:36;;;27049:18;;:::i;:::-;27033:36;26885:191;;;;:::o;27082:176::-;27222:28;27218:1;27210:6;27206:14;27199:52;27082:176;:::o;27264:366::-;27406:3;27427:67;27491:2;27486:3;27427:67;:::i;:::-;27420:74;;27503:93;27592:3;27503:93;:::i;:::-;27621:2;27616:3;27612:12;27605:19;;27264:366;;;:::o;27636:419::-;27802:4;27840:2;27829:9;27825:18;27817:26;;27889:9;27883:4;27879:20;27875:1;27864:9;27860:17;27853:47;27917:131;28043:4;27917:131;:::i;:::-;27909:139;;27636:419;;;:::o;28061:194::-;28101:4;28121:20;28139:1;28121:20;:::i;:::-;28116:25;;28155:20;28173:1;28155:20;:::i;:::-;28150:25;;28199:1;28196;28192:9;28184:17;;28223:1;28217:4;28214:11;28211:37;;;28228:18;;:::i;:::-;28211:37;28061:194;;;;:::o;28261:114::-;28328:6;28362:5;28356:12;28346:22;;28261:114;;;:::o;28381:184::-;28480:11;28514:6;28509:3;28502:19;28554:4;28549:3;28545:14;28530:29;;28381:184;;;;:::o;28571:132::-;28638:4;28661:3;28653:11;;28691:4;28686:3;28682:14;28674:22;;28571:132;;;:::o;28709:108::-;28786:24;28804:5;28786:24;:::i;:::-;28781:3;28774:37;28709:108;;:::o;28823:179::-;28892:10;28913:46;28955:3;28947:6;28913:46;:::i;:::-;28991:4;28986:3;28982:14;28968:28;;28823:179;;;;:::o;29008:113::-;29078:4;29110;29105:3;29101:14;29093:22;;29008:113;;;:::o;29157:732::-;29276:3;29305:54;29353:5;29305:54;:::i;:::-;29375:86;29454:6;29449:3;29375:86;:::i;:::-;29368:93;;29485:56;29535:5;29485:56;:::i;:::-;29564:7;29595:1;29580:284;29605:6;29602:1;29599:13;29580:284;;;29681:6;29675:13;29708:63;29767:3;29752:13;29708:63;:::i;:::-;29701:70;;29794:60;29847:6;29794:60;:::i;:::-;29784:70;;29640:224;29627:1;29624;29620:9;29615:14;;29580:284;;;29584:14;29880:3;29873:10;;29281:608;;;29157:732;;;;:::o;29895:831::-;30158:4;30196:3;30185:9;30181:19;30173:27;;30210:71;30278:1;30267:9;30263:17;30254:6;30210:71;:::i;:::-;30291:80;30367:2;30356:9;30352:18;30343:6;30291:80;:::i;:::-;30418:9;30412:4;30408:20;30403:2;30392:9;30388:18;30381:48;30446:108;30549:4;30540:6;30446:108;:::i;:::-;30438:116;;30564:72;30632:2;30621:9;30617:18;30608:6;30564:72;:::i;:::-;30646:73;30714:3;30703:9;30699:19;30690:6;30646:73;:::i;:::-;29895:831;;;;;;;;:::o;30732:220::-;30872:34;30868:1;30860:6;30856:14;30849:58;30941:3;30936:2;30928:6;30924:15;30917:28;30732:220;:::o;30958:366::-;31100:3;31121:67;31185:2;31180:3;31121:67;:::i;:::-;31114:74;;31197:93;31286:3;31197:93;:::i;:::-;31315:2;31310:3;31306:12;31299:19;;30958:366;;;:::o;31330:419::-;31496:4;31534:2;31523:9;31519:18;31511:26;;31583:9;31577:4;31573:20;31569:1;31558:9;31554:17;31547:47;31611:131;31737:4;31611:131;:::i;:::-;31603:139;;31330:419;;;:::o;31755:177::-;31895:29;31891:1;31883:6;31879:14;31872:53;31755:177;:::o;31938:366::-;32080:3;32101:67;32165:2;32160:3;32101:67;:::i;:::-;32094:74;;32177:93;32266:3;32177:93;:::i;:::-;32295:2;32290:3;32286:12;32279:19;;31938:366;;;:::o;32310:419::-;32476:4;32514:2;32503:9;32499:18;32491:26;;32563:9;32557:4;32553:20;32549:1;32538:9;32534:17;32527:47;32591:131;32717:4;32591:131;:::i;:::-;32583:139;;32310:419;;;:::o

Swarm Source

ipfs://0fb94007b5bbfa4c717f40fb4ef0f317c393b7710ef44390022dc9cf3b7539d2
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.