ETH Price: $2,298.30 (-0.87%)

Token

Make America Mog Again (MAMA)
 

Overview

Max Total Supply

100,000,000 MAMA

Holders

30

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: MAMA 33
Balance
72,444,882.394463757 MAMA

Value
$0.00
0x793e8fb462cee5e951a7d924baeb38cd3161a1e0
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:
MakeAmericaMogAgain

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
shanghai EvmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/**
                                                                                     
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###########################################
    ##*-####-####-*##%=+%%#+=%##*-##*******************************************
    #%*:#%%#:#%%#:+%%%-=%%%=-%%%*:#%#******************************************
    *###%*+%%#*=###*-####:####-##%%%###########################################
    #%##%%####%#%##%*%##%*%##%*%##%%=..........................................
    *####+*###++###*+%%%#+###%+*###############################################
    #%*:#%%#.#%%#.+%%%-=%%%=:%%%*.#%+::::::::::::::::::::::::::::::::::::::::::
    ###-%%%#-####-*##%=*%#%*=####-#%###########################################
    ###%%%%%%##%####%%#%###%##%#%%%%###########################################
    ...........................................................................
    ###########################################################################
    ...........................................................................
    ###########################################################################
    ***************************************************************************
    ***************************************************************************
    ###########################################################################
      
    Make America Mog Again

    Telegram: https://t.me/MAMACoinERC
    Twitter: https://x.com/MAMACoinERC
    Website: https://www.makeamericamogagain.live

*/

pragma solidity 0.8.26;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

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

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

contract MakeAmericaMogAgain is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private isExile;
    mapping (address => bool) public marketPair;
    address payable private _taxWallet;
    uint256 firstBlock;

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"Make America Mog Again";
    string private constant _symbol = unicode"MAMA";
    uint256 public _maxTxAmount =   2000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 100000 * 10**_decimals;
    uint256 public _maxTaxSwap= 100000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    uint256 public caCount = 4;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool public caToggle = true;

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

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[address(this)] = _tTotal;
        isExile[owner()] = true;
        isExile[address(this)] = true;
        isExile[address(uniswapV2Pair)] = true;
        
        emit Transfer(address(0), address(this), _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 (marketPair[from] && to != address(uniswapV2Router) && ! isExile[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 (!marketPair[to] && ! isExile[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

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

	    if (!marketPair[from] && !marketPair[to] && from!= address(this) ) {
                taxAmount = 0;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (caToggle && !inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < caCount, "CA balance sell");
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }

            else if(!inSwap && marketPair[to] && 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 rescueEth() external onlyOwner {
        payable(_taxWallet).transfer(address(this).balance);
    }

    function rescueTokens(address _tokenAddr, uint _amount) external onlyOwner {
        IERC20(_tokenAddr).transfer(_taxWallet, _amount);
    }

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

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

    function addLiquidityEth() external payable onlyOwner {
        require(!tradingOpen, "Trading is already open.");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        IUniswapV2Factory uniswapV2Factory = IUniswapV2Factory(uniswapV2Router.factory());
        uniswapV2Pair = uniswapV2Factory.createPair(address(this), uniswapV2Router.WETH());
        isExile[address(uniswapV2Pair)] = true;
        _approve(address(this), address(uniswapV2Router), totalSupply());
        uniswapV2Router.addLiquidityETH{ value: msg.value }(
            address(this),
            totalSupply(),
            0,
            0,
            owner(),
            block.timestamp
        );
        tradingOpen = true;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityEth","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"caCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"caToggle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeTheLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueTokens","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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601960075560196008555f6009555f600a55601e600b55601e600c55601e600d555f600e555f600f555f6010556009600a61003f91906105b4565b621e848061004d91906105fe565b6011556009600a61005e91906105b4565b621e848061006c91906105fe565b6012556009600a61007d91906105b4565b620186a061008b91906105fe565b6013556009600a61009c91906105b4565b620186a06100aa91906105fe565b60145560046017555f60185f6101000a81548160ff0219169083151502179055505f601860016101000a81548160ff0219169083151502179055506001601860026101000a81548160ff02191690831515021790555034801561010b575f80fd5b505f61011b61041560201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101c561041560201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61021291906105b4565b6305f5e10061022191906105fe565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61027561041c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103ec91906105b4565b6305f5e1006103fb91906105fe565b604051610408919061064e565b60405180910390a3610667565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104c5578086048111156104a1576104a0610443565b5b60018516156104b05780820291505b80810290506104be85610470565b9450610485565b94509492505050565b5f826104dd5760019050610598565b816104ea575f9050610598565b8160018114610500576002811461050a57610539565b6001915050610598565b60ff84111561051c5761051b610443565b5b8360020a91508482111561053357610532610443565b5b50610598565b5060208310610133831016604e8410600b841016171561056e5782820a90508381111561056957610568610443565b5b610598565b61057b848484600161047c565b9250905081840481111561059257610591610443565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105be8261059f565b91506105c9836105a8565b92506105f67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104ce565b905092915050565b5f6106088261059f565b91506106138361059f565b92508282026106218161059f565b9150828204841483151761063857610637610443565b5b5092915050565b6106488161059f565b82525050565b5f6020820190506106615f83018461063f565b92915050565b613340806106745f395ff3fe608060405260043610610143575f3560e01c806370a08231116100b557806395d89b411161006e57806395d89b4114610404578063a9059cbb1461042e578063bf474bed1461046a578063ce31a06b14610494578063dd62ed3e146104aa578063f5b3c3bf146104e65761014a565b806370a082311461030a578063715018a6146103465780637d1db4a51461035c578063883b5be2146103865780638da5cb5b146103b05780638f9a55c0146103da5761014a565b806318160ddd1161010757806318160ddd1461021e57806323b872dd1461024857806324e3444314610284578063313ce5671461028e57806349bd5a5e146102b857806357376198146102e25761014a565b806306fdde031461014e578063095ea7b3146101785780630e12062d146101b45780630faee56f146101de578063139864a8146102085761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610522565b60405161016f919061242c565b60405180910390f35b348015610183575f80fd5b5061019e600480360381019061019991906124dd565b61055f565b6040516101ab9190612535565b60405180910390f35b3480156101bf575f80fd5b506101c861057c565b6040516101d5919061255d565b60405180910390f35b3480156101e9575f80fd5b506101f2610582565b6040516101ff919061255d565b60405180910390f35b348015610213575f80fd5b5061021c610588565b005b348015610229575f80fd5b506102326106b7565b60405161023f919061255d565b60405180910390f35b348015610253575f80fd5b5061026e60048036038101906102699190612576565b6106da565b60405161027b9190612535565b60405180910390f35b61028c6107ae565b005b348015610299575f80fd5b506102a2610c3c565b6040516102af91906125e1565b60405180910390f35b3480156102c3575f80fd5b506102cc610c44565b6040516102d99190612609565b60405180910390f35b3480156102ed575f80fd5b50610308600480360381019061030391906124dd565b610c69565b005b348015610315575f80fd5b50610330600480360381019061032b9190612622565b610d9e565b60405161033d919061255d565b60405180910390f35b348015610351575f80fd5b5061035a610de4565b005b348015610367575f80fd5b50610370610f32565b60405161037d919061255d565b60405180910390f35b348015610391575f80fd5b5061039a610f38565b6040516103a79190612535565b60405180910390f35b3480156103bb575f80fd5b506103c4610f4b565b6040516103d19190612609565b60405180910390f35b3480156103e5575f80fd5b506103ee610f72565b6040516103fb919061255d565b60405180910390f35b34801561040f575f80fd5b50610418610f78565b604051610425919061242c565b60405180910390f35b348015610439575f80fd5b50610454600480360381019061044f91906124dd565b610fb5565b6040516104619190612535565b60405180910390f35b348015610475575f80fd5b5061047e610fd2565b60405161048b919061255d565b60405180910390f35b34801561049f575f80fd5b506104a8610fd8565b005b3480156104b5575f80fd5b506104d060048036038101906104cb919061264d565b6110d3565b6040516104dd919061255d565b60405180910390f35b3480156104f1575f80fd5b5061050c60048036038101906105079190612622565b611155565b6040516105199190612535565b60405180910390f35b60606040518060400160405280601681526020017f4d616b6520416d6572696361204d6f6720416761696e00000000000000000000815250905090565b5f61057261056b611172565b8484611179565b6001905092915050565b60175481565b60145481565b610590611172565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461061c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610613906126d5565b60405180910390fd5b6009600a61062a919061284f565b6305f5e1006106399190612899565b6011819055506009600a61064d919061284f565b6305f5e10061065c9190612899565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610691919061284f565b6305f5e1006106a09190612899565b6040516106ad919061255d565b60405180910390a1565b5f6009600a6106c6919061284f565b6305f5e1006106d59190612899565b905090565b5f6106e684848461133c565b6107a3846106f2611172565b61079e856040518060600160405280602881526020016132e36028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610755611172565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e7f9092919063ffffffff16565b611179565b600190509392505050565b6107b6611172565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610842576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610839906126d5565b60405180910390fd5b601660149054906101000a900460ff1615610892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088990612924565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610951573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109759190612956565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109fe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a229190612956565b6040518363ffffffff1660e01b8152600401610a3f929190612981565b6020604051808303815f875af1158015610a5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7f9190612956565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160035f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610b673060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b626106b7565b611179565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610bae6106b7565b5f80610bb8610f4b565b426040518863ffffffff1660e01b8152600401610bda969594939291906129ea565b60606040518083038185885af1158015610bf6573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c1b9190612a5d565b5050506001601660146101000a81548160ff02191690831515021790555050565b5f6009905090565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c71611172565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf4906126d5565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610d59929190612aff565b6020604051808303815f875af1158015610d75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d999190612b50565b505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610dec611172565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6f906126d5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b601860029054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600481526020017f4d414d4100000000000000000000000000000000000000000000000000000000815250905090565b5f610fc8610fc1611172565b848461133c565b6001905092915050565b60135481565b610fe0611172565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461106c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611063906126d5565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156110d0573d5f803e3d5ffd5b50565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111de90612beb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611255576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124c90612c79565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161132f919061255d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a190612d07565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f90612d95565b60405180910390fd5b5f811161145a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145190612e23565b60405180910390fd5b5f611463610f4b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114d157506114a1610f4b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bcf576115126064611504600b54600e54116114f1576007546114f5565b6009545b85611ee190919063ffffffff16565b611f5890919063ffffffff16565b905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156115b7575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561160a575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156116ed57601154821115611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164b90612e8b565b60405180910390fd5b6012548261166185610d9e565b61166b9190612ea9565b11156116ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a390612f26565b60405180910390fd5b4360036006546116bc9190612ea9565b11156116d5576116cb83611fa1565b156116d4575f80fd5b5b600e5f8154809291906116e790612f44565b91905055505b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561178b575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117e9576012548261179d85610d9e565b6117a79190612ea9565b11156117e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117df90612f26565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561186b57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118af576118ac606461189e600c54600e541161188b5760085461188f565b600a545b85611ee190919063ffffffff16565b611f5890919063ffffffff16565b90505b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561194d575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561198557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561198e575f90505b5f61199830610d9e565b9050601860029054906101000a900460ff1680156119c2575060185f9054906101000a900460ff16155b8015611a14575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611a2c5750601860019054906101000a900460ff165b8015611a39575060135481115b8015611a485750600d54600e54115b15611afc57601054431115611a5f575f600f819055505b601754600f5410611aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9c90612fd5565b60405180910390fd5b611ac2611abd84611ab884601454611fb2565b611fb2565b611fca565b5f4790505f811115611ad857611ad747612233565b5b600f5f815480929190611aea90612f44565b91905055504360108190555050611bcd565b60185f9054906101000a900460ff16158015611b5e575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611b765750601860019054906101000a900460ff165b8015611b83575060135481115b8015611b925750600d54600e54115b15611bcc57611bb4611baf84611baa84601454611fb2565b611fb2565b611fca565b5f4790505f811115611bca57611bc947612233565b5b505b5b505b5f811115611cce57611c278160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461229b90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cc5919061255d565b60405180910390a35b611d1e8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122f890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dc1611d7582846122f890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461229b90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e6484866122f890919063ffffffff16565b604051611e71919061255d565b60405180910390a350505050565b5f838311158290611ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebd919061242c565b60405180910390fd5b505f8385611ed49190612ff3565b9050809150509392505050565b5f808303611ef1575f9050611f52565b5f8284611efe9190612899565b9050828482611f0d9190613053565b14611f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f44906130f3565b60405180910390fd5b809150505b92915050565b5f611f9983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612341565b905092915050565b5f80823b90505f8111915050919050565b5f818311611fc05782611fc2565b815b905092915050565b600160185f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561200057611fff613111565b5b60405190808252806020026020018201604052801561202e5781602001602082028036833780820191505090505b50905030815f815181106120455761204461313e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061210d9190612956565b816001815181106121215761212061313e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121873060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611179565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121e9959493929190613222565b5f604051808303815f87803b158015612200575f80fd5b505af1158015612212573d5f803e3d5ffd5b50505050505f60185f6101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612297573d5f803e3d5ffd5b5050565b5f8082846122a99190612ea9565b9050838110156122ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e5906132c4565b60405180910390fd5b8091505092915050565b5f61233983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e7f565b905092915050565b5f8083118290612387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237e919061242c565b60405180910390fd5b505f83856123959190613053565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123d95780820151818401526020810190506123be565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6123fe826123a2565b61240881856123ac565b93506124188185602086016123bc565b612421816123e4565b840191505092915050565b5f6020820190508181035f83015261244481846123f4565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61247982612450565b9050919050565b6124898161246f565b8114612493575f80fd5b50565b5f813590506124a481612480565b92915050565b5f819050919050565b6124bc816124aa565b81146124c6575f80fd5b50565b5f813590506124d7816124b3565b92915050565b5f80604083850312156124f3576124f261244c565b5b5f61250085828601612496565b9250506020612511858286016124c9565b9150509250929050565b5f8115159050919050565b61252f8161251b565b82525050565b5f6020820190506125485f830184612526565b92915050565b612557816124aa565b82525050565b5f6020820190506125705f83018461254e565b92915050565b5f805f6060848603121561258d5761258c61244c565b5b5f61259a86828701612496565b93505060206125ab86828701612496565b92505060406125bc868287016124c9565b9150509250925092565b5f60ff82169050919050565b6125db816125c6565b82525050565b5f6020820190506125f45f8301846125d2565b92915050565b6126038161246f565b82525050565b5f60208201905061261c5f8301846125fa565b92915050565b5f602082840312156126375761263661244c565b5b5f61264484828501612496565b91505092915050565b5f80604083850312156126635761266261244c565b5b5f61267085828601612496565b925050602061268185828601612496565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126bf6020836123ac565b91506126ca8261268b565b602082019050919050565b5f6020820190508181035f8301526126ec816126b3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561277557808604811115612751576127506126f3565b5b60018516156127605780820291505b808102905061276e85612720565b9450612735565b94509492505050565b5f8261278d5760019050612848565b8161279a575f9050612848565b81600181146127b057600281146127ba576127e9565b6001915050612848565b60ff8411156127cc576127cb6126f3565b5b8360020a9150848211156127e3576127e26126f3565b5b50612848565b5060208310610133831016604e8410600b841016171561281e5782820a905083811115612819576128186126f3565b5b612848565b61282b848484600161272c565b92509050818404811115612842576128416126f3565b5b81810290505b9392505050565b5f612859826124aa565b9150612864836125c6565b92506128917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461277e565b905092915050565b5f6128a3826124aa565b91506128ae836124aa565b92508282026128bc816124aa565b915082820484148315176128d3576128d26126f3565b5b5092915050565b7f54726164696e6720697320616c7265616479206f70656e2e00000000000000005f82015250565b5f61290e6018836123ac565b9150612919826128da565b602082019050919050565b5f6020820190508181035f83015261293b81612902565b9050919050565b5f8151905061295081612480565b92915050565b5f6020828403121561296b5761296a61244c565b5b5f61297884828501612942565b91505092915050565b5f6040820190506129945f8301856125fa565b6129a160208301846125fa565b9392505050565b5f819050919050565b5f819050919050565b5f6129d46129cf6129ca846129a8565b6129b1565b6124aa565b9050919050565b6129e4816129ba565b82525050565b5f60c0820190506129fd5f8301896125fa565b612a0a602083018861254e565b612a1760408301876129db565b612a2460608301866129db565b612a3160808301856125fa565b612a3e60a083018461254e565b979650505050505050565b5f81519050612a57816124b3565b92915050565b5f805f60608486031215612a7457612a7361244c565b5b5f612a8186828701612a49565b9350506020612a9286828701612a49565b9250506040612aa386828701612a49565b9150509250925092565b5f612ac7612ac2612abd84612450565b6129b1565b612450565b9050919050565b5f612ad882612aad565b9050919050565b5f612ae982612ace565b9050919050565b612af981612adf565b82525050565b5f604082019050612b125f830185612af0565b612b1f602083018461254e565b9392505050565b612b2f8161251b565b8114612b39575f80fd5b50565b5f81519050612b4a81612b26565b92915050565b5f60208284031215612b6557612b6461244c565b5b5f612b7284828501612b3c565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612bd56024836123ac565b9150612be082612b7b565b604082019050919050565b5f6020820190508181035f830152612c0281612bc9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c636022836123ac565b9150612c6e82612c09565b604082019050919050565b5f6020820190508181035f830152612c9081612c57565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612cf16025836123ac565b9150612cfc82612c97565b604082019050919050565b5f6020820190508181035f830152612d1e81612ce5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d7f6023836123ac565b9150612d8a82612d25565b604082019050919050565b5f6020820190508181035f830152612dac81612d73565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e0d6029836123ac565b9150612e1882612db3565b604082019050919050565b5f6020820190508181035f830152612e3a81612e01565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612e756019836123ac565b9150612e8082612e41565b602082019050919050565b5f6020820190508181035f830152612ea281612e69565b9050919050565b5f612eb3826124aa565b9150612ebe836124aa565b9250828201905080821115612ed657612ed56126f3565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612f10601a836123ac565b9150612f1b82612edc565b602082019050919050565b5f6020820190508181035f830152612f3d81612f04565b9050919050565b5f612f4e826124aa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f8057612f7f6126f3565b5b600182019050919050565b7f43412062616c616e63652073656c6c00000000000000000000000000000000005f82015250565b5f612fbf600f836123ac565b9150612fca82612f8b565b602082019050919050565b5f6020820190508181035f830152612fec81612fb3565b9050919050565b5f612ffd826124aa565b9150613008836124aa565b92508282039050818111156130205761301f6126f3565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61305d826124aa565b9150613068836124aa565b92508261307857613077613026565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130dd6021836123ac565b91506130e882613083565b604082019050919050565b5f6020820190508181035f83015261310a816130d1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61319d8161246f565b82525050565b5f6131ae8383613194565b60208301905092915050565b5f602082019050919050565b5f6131d08261316b565b6131da8185613175565b93506131e583613185565b805f5b838110156132155781516131fc88826131a3565b9750613207836131ba565b9250506001810190506131e8565b5085935050505092915050565b5f60a0820190506132355f83018861254e565b61324260208301876129db565b818103604083015261325481866131c6565b905061326360608301856125fa565b613270608083018461254e565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6132ae601b836123ac565b91506132b98261327a565b602082019050919050565b5f6020820190508181035f8301526132db816132a2565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e4eea75950994908878ad2ddaa95535fd5270fc5bda88f74cc3aa18c77e6fc4264736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610143575f3560e01c806370a08231116100b557806395d89b411161006e57806395d89b4114610404578063a9059cbb1461042e578063bf474bed1461046a578063ce31a06b14610494578063dd62ed3e146104aa578063f5b3c3bf146104e65761014a565b806370a082311461030a578063715018a6146103465780637d1db4a51461035c578063883b5be2146103865780638da5cb5b146103b05780638f9a55c0146103da5761014a565b806318160ddd1161010757806318160ddd1461021e57806323b872dd1461024857806324e3444314610284578063313ce5671461028e57806349bd5a5e146102b857806357376198146102e25761014a565b806306fdde031461014e578063095ea7b3146101785780630e12062d146101b45780630faee56f146101de578063139864a8146102085761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610522565b60405161016f919061242c565b60405180910390f35b348015610183575f80fd5b5061019e600480360381019061019991906124dd565b61055f565b6040516101ab9190612535565b60405180910390f35b3480156101bf575f80fd5b506101c861057c565b6040516101d5919061255d565b60405180910390f35b3480156101e9575f80fd5b506101f2610582565b6040516101ff919061255d565b60405180910390f35b348015610213575f80fd5b5061021c610588565b005b348015610229575f80fd5b506102326106b7565b60405161023f919061255d565b60405180910390f35b348015610253575f80fd5b5061026e60048036038101906102699190612576565b6106da565b60405161027b9190612535565b60405180910390f35b61028c6107ae565b005b348015610299575f80fd5b506102a2610c3c565b6040516102af91906125e1565b60405180910390f35b3480156102c3575f80fd5b506102cc610c44565b6040516102d99190612609565b60405180910390f35b3480156102ed575f80fd5b50610308600480360381019061030391906124dd565b610c69565b005b348015610315575f80fd5b50610330600480360381019061032b9190612622565b610d9e565b60405161033d919061255d565b60405180910390f35b348015610351575f80fd5b5061035a610de4565b005b348015610367575f80fd5b50610370610f32565b60405161037d919061255d565b60405180910390f35b348015610391575f80fd5b5061039a610f38565b6040516103a79190612535565b60405180910390f35b3480156103bb575f80fd5b506103c4610f4b565b6040516103d19190612609565b60405180910390f35b3480156103e5575f80fd5b506103ee610f72565b6040516103fb919061255d565b60405180910390f35b34801561040f575f80fd5b50610418610f78565b604051610425919061242c565b60405180910390f35b348015610439575f80fd5b50610454600480360381019061044f91906124dd565b610fb5565b6040516104619190612535565b60405180910390f35b348015610475575f80fd5b5061047e610fd2565b60405161048b919061255d565b60405180910390f35b34801561049f575f80fd5b506104a8610fd8565b005b3480156104b5575f80fd5b506104d060048036038101906104cb919061264d565b6110d3565b6040516104dd919061255d565b60405180910390f35b3480156104f1575f80fd5b5061050c60048036038101906105079190612622565b611155565b6040516105199190612535565b60405180910390f35b60606040518060400160405280601681526020017f4d616b6520416d6572696361204d6f6720416761696e00000000000000000000815250905090565b5f61057261056b611172565b8484611179565b6001905092915050565b60175481565b60145481565b610590611172565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461061c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610613906126d5565b60405180910390fd5b6009600a61062a919061284f565b6305f5e1006106399190612899565b6011819055506009600a61064d919061284f565b6305f5e10061065c9190612899565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610691919061284f565b6305f5e1006106a09190612899565b6040516106ad919061255d565b60405180910390a1565b5f6009600a6106c6919061284f565b6305f5e1006106d59190612899565b905090565b5f6106e684848461133c565b6107a3846106f2611172565b61079e856040518060600160405280602881526020016132e36028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610755611172565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e7f9092919063ffffffff16565b611179565b600190509392505050565b6107b6611172565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610842576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610839906126d5565b60405180910390fd5b601660149054906101000a900460ff1615610892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088990612924565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610951573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109759190612956565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109fe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a229190612956565b6040518363ffffffff1660e01b8152600401610a3f929190612981565b6020604051808303815f875af1158015610a5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7f9190612956565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160035f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610b673060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b626106b7565b611179565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610bae6106b7565b5f80610bb8610f4b565b426040518863ffffffff1660e01b8152600401610bda969594939291906129ea565b60606040518083038185885af1158015610bf6573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c1b9190612a5d565b5050506001601660146101000a81548160ff02191690831515021790555050565b5f6009905090565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c71611172565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf4906126d5565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610d59929190612aff565b6020604051808303815f875af1158015610d75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d999190612b50565b505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610dec611172565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6f906126d5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b601860029054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600481526020017f4d414d4100000000000000000000000000000000000000000000000000000000815250905090565b5f610fc8610fc1611172565b848461133c565b6001905092915050565b60135481565b610fe0611172565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461106c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611063906126d5565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156110d0573d5f803e3d5ffd5b50565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111de90612beb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611255576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124c90612c79565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161132f919061255d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a190612d07565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f90612d95565b60405180910390fd5b5f811161145a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145190612e23565b60405180910390fd5b5f611463610f4b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114d157506114a1610f4b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bcf576115126064611504600b54600e54116114f1576007546114f5565b6009545b85611ee190919063ffffffff16565b611f5890919063ffffffff16565b905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156115b7575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561160a575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156116ed57601154821115611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164b90612e8b565b60405180910390fd5b6012548261166185610d9e565b61166b9190612ea9565b11156116ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a390612f26565b60405180910390fd5b4360036006546116bc9190612ea9565b11156116d5576116cb83611fa1565b156116d4575f80fd5b5b600e5f8154809291906116e790612f44565b91905055505b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561178b575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117e9576012548261179d85610d9e565b6117a79190612ea9565b11156117e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117df90612f26565b60405180910390fd5b5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561186b57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118af576118ac606461189e600c54600e541161188b5760085461188f565b600a545b85611ee190919063ffffffff16565b611f5890919063ffffffff16565b90505b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561194d575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561198557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561198e575f90505b5f61199830610d9e565b9050601860029054906101000a900460ff1680156119c2575060185f9054906101000a900460ff16155b8015611a14575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611a2c5750601860019054906101000a900460ff165b8015611a39575060135481115b8015611a485750600d54600e54115b15611afc57601054431115611a5f575f600f819055505b601754600f5410611aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9c90612fd5565b60405180910390fd5b611ac2611abd84611ab884601454611fb2565b611fb2565b611fca565b5f4790505f811115611ad857611ad747612233565b5b600f5f815480929190611aea90612f44565b91905055504360108190555050611bcd565b60185f9054906101000a900460ff16158015611b5e575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611b765750601860019054906101000a900460ff165b8015611b83575060135481115b8015611b925750600d54600e54115b15611bcc57611bb4611baf84611baa84601454611fb2565b611fb2565b611fca565b5f4790505f811115611bca57611bc947612233565b5b505b5b505b5f811115611cce57611c278160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461229b90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cc5919061255d565b60405180910390a35b611d1e8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122f890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dc1611d7582846122f890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461229b90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e6484866122f890919063ffffffff16565b604051611e71919061255d565b60405180910390a350505050565b5f838311158290611ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebd919061242c565b60405180910390fd5b505f8385611ed49190612ff3565b9050809150509392505050565b5f808303611ef1575f9050611f52565b5f8284611efe9190612899565b9050828482611f0d9190613053565b14611f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f44906130f3565b60405180910390fd5b809150505b92915050565b5f611f9983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612341565b905092915050565b5f80823b90505f8111915050919050565b5f818311611fc05782611fc2565b815b905092915050565b600160185f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561200057611fff613111565b5b60405190808252806020026020018201604052801561202e5781602001602082028036833780820191505090505b50905030815f815181106120455761204461313e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061210d9190612956565b816001815181106121215761212061313e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121873060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611179565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121e9959493929190613222565b5f604051808303815f87803b158015612200575f80fd5b505af1158015612212573d5f803e3d5ffd5b50505050505f60185f6101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612297573d5f803e3d5ffd5b5050565b5f8082846122a99190612ea9565b9050838110156122ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e5906132c4565b60405180910390fd5b8091505092915050565b5f61233983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e7f565b905092915050565b5f8083118290612387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237e919061242c565b60405180910390fd5b505f83856123959190613053565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123d95780820151818401526020810190506123be565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6123fe826123a2565b61240881856123ac565b93506124188185602086016123bc565b612421816123e4565b840191505092915050565b5f6020820190508181035f83015261244481846123f4565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61247982612450565b9050919050565b6124898161246f565b8114612493575f80fd5b50565b5f813590506124a481612480565b92915050565b5f819050919050565b6124bc816124aa565b81146124c6575f80fd5b50565b5f813590506124d7816124b3565b92915050565b5f80604083850312156124f3576124f261244c565b5b5f61250085828601612496565b9250506020612511858286016124c9565b9150509250929050565b5f8115159050919050565b61252f8161251b565b82525050565b5f6020820190506125485f830184612526565b92915050565b612557816124aa565b82525050565b5f6020820190506125705f83018461254e565b92915050565b5f805f6060848603121561258d5761258c61244c565b5b5f61259a86828701612496565b93505060206125ab86828701612496565b92505060406125bc868287016124c9565b9150509250925092565b5f60ff82169050919050565b6125db816125c6565b82525050565b5f6020820190506125f45f8301846125d2565b92915050565b6126038161246f565b82525050565b5f60208201905061261c5f8301846125fa565b92915050565b5f602082840312156126375761263661244c565b5b5f61264484828501612496565b91505092915050565b5f80604083850312156126635761266261244c565b5b5f61267085828601612496565b925050602061268185828601612496565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126bf6020836123ac565b91506126ca8261268b565b602082019050919050565b5f6020820190508181035f8301526126ec816126b3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561277557808604811115612751576127506126f3565b5b60018516156127605780820291505b808102905061276e85612720565b9450612735565b94509492505050565b5f8261278d5760019050612848565b8161279a575f9050612848565b81600181146127b057600281146127ba576127e9565b6001915050612848565b60ff8411156127cc576127cb6126f3565b5b8360020a9150848211156127e3576127e26126f3565b5b50612848565b5060208310610133831016604e8410600b841016171561281e5782820a905083811115612819576128186126f3565b5b612848565b61282b848484600161272c565b92509050818404811115612842576128416126f3565b5b81810290505b9392505050565b5f612859826124aa565b9150612864836125c6565b92506128917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461277e565b905092915050565b5f6128a3826124aa565b91506128ae836124aa565b92508282026128bc816124aa565b915082820484148315176128d3576128d26126f3565b5b5092915050565b7f54726164696e6720697320616c7265616479206f70656e2e00000000000000005f82015250565b5f61290e6018836123ac565b9150612919826128da565b602082019050919050565b5f6020820190508181035f83015261293b81612902565b9050919050565b5f8151905061295081612480565b92915050565b5f6020828403121561296b5761296a61244c565b5b5f61297884828501612942565b91505092915050565b5f6040820190506129945f8301856125fa565b6129a160208301846125fa565b9392505050565b5f819050919050565b5f819050919050565b5f6129d46129cf6129ca846129a8565b6129b1565b6124aa565b9050919050565b6129e4816129ba565b82525050565b5f60c0820190506129fd5f8301896125fa565b612a0a602083018861254e565b612a1760408301876129db565b612a2460608301866129db565b612a3160808301856125fa565b612a3e60a083018461254e565b979650505050505050565b5f81519050612a57816124b3565b92915050565b5f805f60608486031215612a7457612a7361244c565b5b5f612a8186828701612a49565b9350506020612a9286828701612a49565b9250506040612aa386828701612a49565b9150509250925092565b5f612ac7612ac2612abd84612450565b6129b1565b612450565b9050919050565b5f612ad882612aad565b9050919050565b5f612ae982612ace565b9050919050565b612af981612adf565b82525050565b5f604082019050612b125f830185612af0565b612b1f602083018461254e565b9392505050565b612b2f8161251b565b8114612b39575f80fd5b50565b5f81519050612b4a81612b26565b92915050565b5f60208284031215612b6557612b6461244c565b5b5f612b7284828501612b3c565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612bd56024836123ac565b9150612be082612b7b565b604082019050919050565b5f6020820190508181035f830152612c0281612bc9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c636022836123ac565b9150612c6e82612c09565b604082019050919050565b5f6020820190508181035f830152612c9081612c57565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612cf16025836123ac565b9150612cfc82612c97565b604082019050919050565b5f6020820190508181035f830152612d1e81612ce5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d7f6023836123ac565b9150612d8a82612d25565b604082019050919050565b5f6020820190508181035f830152612dac81612d73565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e0d6029836123ac565b9150612e1882612db3565b604082019050919050565b5f6020820190508181035f830152612e3a81612e01565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612e756019836123ac565b9150612e8082612e41565b602082019050919050565b5f6020820190508181035f830152612ea281612e69565b9050919050565b5f612eb3826124aa565b9150612ebe836124aa565b9250828201905080821115612ed657612ed56126f3565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612f10601a836123ac565b9150612f1b82612edc565b602082019050919050565b5f6020820190508181035f830152612f3d81612f04565b9050919050565b5f612f4e826124aa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f8057612f7f6126f3565b5b600182019050919050565b7f43412062616c616e63652073656c6c00000000000000000000000000000000005f82015250565b5f612fbf600f836123ac565b9150612fca82612f8b565b602082019050919050565b5f6020820190508181035f830152612fec81612fb3565b9050919050565b5f612ffd826124aa565b9150613008836124aa565b92508282039050818111156130205761301f6126f3565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61305d826124aa565b9150613068836124aa565b92508261307857613077613026565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130dd6021836123ac565b91506130e882613083565b604082019050919050565b5f6020820190508181035f83015261310a816130d1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61319d8161246f565b82525050565b5f6131ae8383613194565b60208301905092915050565b5f602082019050919050565b5f6131d08261316b565b6131da8185613175565b93506131e583613185565b805f5b838110156132155781516131fc88826131a3565b9750613207836131ba565b9250506001810190506131e8565b5085935050505092915050565b5f60a0820190506132355f83018861254e565b61324260208301876129db565b818103604083015261325481866131c6565b905061326360608301856125fa565b613270608083018461254e565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6132ae601b836123ac565b91506132b98261327a565b602082019050919050565b5f6020820190508181035f8301526132db816132a2565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e4eea75950994908878ad2ddaa95535fd5270fc5bda88f74cc3aa18c77e6fc4264736f6c634300081a0033

Deployed Bytecode Sourcemap

5074:8772:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7062:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7895:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6458:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6284:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12772:162;;;;;;;;;;;;;:::i;:::-;;7339:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8064:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13042:764;;;:::i;:::-;;7248:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6392:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12622:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7442:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4157:148;;;;;;;;;;;;;:::i;:::-;;6097:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6564:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3943:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6159:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7153:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7569:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6221:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12504:110;;;;;;;;;;;;;:::i;:::-;;7744:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5348:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7062:83;7099:13;7132:5;;;;;;;;;;;;;;;;;7125:12;;7062:83;:::o;7895:161::-;7970:4;7987:39;7996:12;:10;:12::i;:::-;8010:7;8019:6;7987:8;:39::i;:::-;8044:4;8037:11;;7895:161;;;;:::o;6458:26::-;;;;:::o;6284:50::-;;;;:::o;12772:162::-;4080:12;:10;:12::i;:::-;4070:22;;:6;;;;;;;;;;:22;;;4062:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5898:1:::1;5953:2;:13;;;;:::i;:::-;5941:9;:25;;;;:::i;:::-;12828:12;:22;;;;5898:1;5953:2;:13;;;;:::i;:::-;5941:9;:25;;;;:::i;:::-;12861:14;:22;;;;12899:27;5898:1;5953:2;:13;;;;:::i;:::-;5941:9;:25;;;;:::i;:::-;12899:27;;;;;;:::i;:::-;;;;;;;;12772:162::o:0;7339:95::-;7392:7;5898:1;5953:2;:13;;;;:::i;:::-;5941:9;:25;;;;:::i;:::-;7412:14;;7339:95;:::o;8064:313::-;8162:4;8179:36;8189:6;8197:9;8208:6;8179:9;:36::i;:::-;8226:121;8235:6;8243:12;:10;:12::i;:::-;8257:89;8295:6;8257:89;;;;;;;;;;;;;;;;;:11;:19;8269:6;8257:19;;;;;;;;;;;;;;;:33;8277:12;:10;:12::i;:::-;8257:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8226:8;:121::i;:::-;8365:4;8358:11;;8064:313;;;;;:::o;13042:764::-;4080:12;:10;:12::i;:::-;4070:22;;:6;;;;;;;;;;:22;;;4062:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13116:11:::1;;;;;;;;;;;13115:12;13107:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;13204:42;13167:15;;:80;;;;;;;;;;;;;;;;;;13258:34;13313:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13258:81;;13366:16;:27;;;13402:4;13409:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13366:66;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13350:13;;:82;;;;;;;;;;;;;;;;;;13477:4;13443:7;:31;13459:13;;;;;;;;;;;13443:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;13492:64;13509:4;13524:15;;;;;;;;;;;13542:13;:11;:13::i;:::-;13492:8;:64::i;:::-;13567:15;;;;;;;;;;;:31;;;13607:9;13641:4;13661:13;:11;:13::i;:::-;13689:1;13705::::0;13721:7:::1;:5;:7::i;:::-;13743:15;13567:202;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13794:4;13780:11;;:18;;;;;;;;;;;;;;;;;;13096:710;13042:764::o:0;7248:83::-;7289:5;5898:1;7307:16;;7248:83;:::o;6392:28::-;;;;;;;;;;;;;:::o;12622:142::-;4080:12;:10;:12::i;:::-;4070:22;;:6;;;;;;;;;;:22;;;4062:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12715:10:::1;12708:27;;;12736:10;;;;;;;;;;;12748:7;12708:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12622:142:::0;;:::o;7442:119::-;7508:7;7535:9;:18;7545:7;7535:18;;;;;;;;;;;;;;;;7528:25;;7442:119;;;:::o;4157:148::-;4080:12;:10;:12::i;:::-;4070:22;;:6;;;;;;;;;;:22;;;4062:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4264:1:::1;4227:40;;4248:6;::::0;::::1;;;;;;;;4227:40;;;;;;;;;;;;4295:1;4278:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4157:148::o:0;6097:55::-;;;;:::o;6564:27::-;;;;;;;;;;;;;:::o;3943:79::-;3981:7;4008:6;;;;;;;;;;;4001:13;;3943:79;:::o;6159:55::-;;;;:::o;7153:87::-;7192:13;7225:7;;;;;;;;;;;;;;;;;7218:14;;7153:87;:::o;7569:167::-;7647:4;7664:42;7674:12;:10;:12::i;:::-;7688:9;7699:6;7664:9;:42::i;:::-;7724:4;7717:11;;7569:167;;;;:::o;6221:56::-;;;;:::o;12504:110::-;4080:12;:10;:12::i;:::-;4070:22;;:6;;;;;;;;;;:22;;;4062:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12563:10:::1;;;;;;;;;;;12555:28;;:51;12584:21;12555:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12504:110::o:0;7744:143::-;7825:7;7852:11;:18;7864:5;7852:18;;;;;;;;;;;;;;;:27;7871:7;7852:27;;;;;;;;;;;;;;;;7845:34;;7744:143;;;;:::o;5348:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;1698:98::-;1751:7;1778:10;1771:17;;1698:98;:::o;8385:335::-;8495:1;8478:19;;:5;:19;;;8470:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8576:1;8557:21;;:7;:21;;;8549:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8658:6;8628:11;:18;8640:5;8628:18;;;;;;;;;;;;;;;:27;8647:7;8628:27;;;;;;;;;;;;;;;:36;;;;8696:7;8680:32;;8689:5;8680:32;;;8705:6;8680:32;;;;;;:::i;:::-;;;;;;;;8385:335;;;:::o;8728:2966::-;8832:1;8816:18;;:4;:18;;;8808:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8909:1;8895:16;;:2;:16;;;8887:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8979:1;8970:6;:10;8962:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9037:17;9081:7;:5;:7::i;:::-;9073:15;;:4;:15;;;;:32;;;;;9098:7;:5;:7::i;:::-;9092:13;;:2;:13;;;;9073:32;9069:2269;;;9134:79;9209:3;9134:70;9157:15;;9146:9;;:26;9145:58;;9189:14;;9145:58;;;9175:12;;9145:58;9134:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9122:91;;9234:10;:16;9245:4;9234:16;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;9268:15;;;;;;;;;;;9254:30;;:2;:30;;;;9234:50;:67;;;;;9290:7;:11;9298:2;9290:11;;;;;;;;;;;;;;;;;;;;;;;;;9288:13;9234:67;9230:420;;;9341:12;;9331:6;:22;;9323:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9436:14;;9426:6;9410:13;9420:2;9410:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9402:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9524:12;9519:1;9506:10;;:14;;;;:::i;:::-;:30;9502:103;;;9570:14;9581:2;9570:10;:14::i;:::-;9569:15;9561:24;;;;;;9502:103;9623:9;;:11;;;;;;;;;:::i;:::-;;;;;;9230:420;9671:10;:14;9682:2;9671:14;;;;;;;;;;;;;;;;;;;;;;;;;9670:15;:32;;;;;9691:7;:11;9699:2;9691:11;;;;;;;;;;;;;;;;;;;;;;;;;9689:13;9670:32;9666:152;;;9757:14;;9747:6;9731:13;9741:2;9731:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9723:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9666:152;9837:10;:14;9848:2;9837:14;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;;9870:4;9855:20;;:4;:20;;;;9837:38;9834:172;;;9908:82;9986:3;9908:73;9931:16;;9920:9;;:27;9919:61;;9965:15;;9919:61;;;9950:13;;9919:61;9908:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;9896:94;;9834:172;10020:10;:16;10031:4;10020:16;;;;;;;;;;;;;;;;;;;;;;;;;10019:17;:36;;;;;10041:10;:14;10052:2;10041:14;;;;;;;;;;;;;;;;;;;;;;;;;10040:15;10019:36;:60;;;;;10074:4;10059:20;;:4;:20;;;;10019:60;10015:115;;;10113:1;10101:13;;10015:115;10146:28;10177:24;10195:4;10177:9;:24::i;:::-;10146:55;;10220:8;;;;;;;;;;;:19;;;;;10233:6;;;;;;;;;;;10232:7;10220:19;:37;;;;;10243:10;:14;10254:2;10243:14;;;;;;;;;;;;;;;;;;;;;;;;;10220:37;:52;;;;;10261:11;;;;;;;;;;;10220:52;:94;;;;;10297:17;;10276:20;:38;10220:94;:126;;;;;10328:18;;10318:9;;:28;10220:126;10216:1111;;;10386:13;;10371:12;:28;10367:90;;;10436:1;10424:9;:13;;;;10367:90;10495:7;;10483:9;;:19;10475:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10541:67;10558:49;10562:6;10569:37;10573:20;10594:11;;10569:3;:37::i;:::-;10558:3;:49::i;:::-;10541:16;:67::i;:::-;10627:26;10656:21;10627:50;;10720:1;10699:18;:22;10696:105;;;10746:35;10759:21;10746:12;:35::i;:::-;10696:105;10819:9;;:11;;;;;;;;;:::i;:::-;;;;;;10865:12;10849:13;:28;;;;10348:545;10216:1111;;;10918:6;;;;;;;;;;;10917:7;:25;;;;;10928:10;:14;10939:2;10928:14;;;;;;;;;;;;;;;;;;;;;;;;;10917:25;:40;;;;;10946:11;;;;;;;;;;;10917:40;:82;;;;;10982:17;;10961:20;:38;10917:82;:114;;;;;11013:18;;11003:9;;:28;10917:114;10914:413;;;11052:67;11069:49;11073:6;11080:37;11084:20;11105:11;;11080:3;:37::i;:::-;11069:3;:49::i;:::-;11052:16;:67::i;:::-;11138:26;11167:21;11138:50;;11231:1;11210:18;:22;11207:105;;;11257:35;11270:21;11257:12;:35::i;:::-;11207:105;11033:294;10914:413;10216:1111;9107:2231;9069:2269;11363:1;11353:9;:11;11350:161;;;11403:39;11432:9;11403;:24;11421:4;11403:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11378:9;:24;11396:4;11378:24;;;;;;;;;;;;;;;:64;;;;11483:4;11460:39;;11469:4;11460:39;;;11489:9;11460:39;;;;;;:::i;:::-;;;;;;;;11350:161;11537:27;11557:6;11537:9;:15;11547:4;11537:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;11521:9;:15;11531:4;11521:15;;;;;;;;;;;;;;;:43;;;;11589:40;11607:21;11618:9;11607:6;:10;;:21;;;;:::i;:::-;11589:9;:13;11599:2;11589:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;11575:9;:13;11585:2;11575:13;;;;;;;;;;;;;;;:54;;;;11660:2;11645:41;;11654:4;11645:41;;;11664:21;11675:9;11664:6;:10;;:21;;;;:::i;:::-;11645:41;;;;;;:::i;:::-;;;;;;;;8797:2897;8728:2966;;;:::o;2835:190::-;2921:7;2954:1;2949;:6;;2957:12;2941:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2981:9;2997:1;2993;:5;;;;:::i;:::-;2981:17;;3016:1;3009:8;;;2835:190;;;;;:::o;3033:246::-;3091:7;3120:1;3115;:6;3111:47;;3145:1;3138:8;;;;3111:47;3168:9;3184:1;3180;:5;;;;:::i;:::-;3168:17;;3213:1;3208;3204;:5;;;;:::i;:::-;:10;3196:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3270:1;3263:8;;;3033:246;;;;;:::o;3287:132::-;3345:7;3372:39;3376:1;3379;3372:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3365:46;;3287:132;;;;:::o;11810:195::-;11869:4;11886:12;11953:7;11941:20;11933:28;;11996:1;11989:4;:8;11982:15;;;11810:195;;;:::o;11704:98::-;11761:7;11788:1;11786;:3;11785:9;;11793:1;11785:9;;;11791:1;11785:9;11778:16;;11704:98;;;;:::o;12013:483::-;6691:4;6682:6;;:13;;;;;;;;;;;;;;;;;;12091:21:::1;12129:1;12115:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12091:40;;12160:4;12142;12147:1;12142:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12186:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12176:4;12181:1;12176:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12219:62;12236:4;12251:15;;;;;;;;;;;12269:11;12219:8;:62::i;:::-;12292:15;;;;;;;;;;;:66;;;12373:11;12399:1;12415:4;12442;12462:15;12292:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12080:416;6727:5:::0;6718:6;;:14;;;;;;;;;;;;;;;;;;12013:483;:::o;12942:92::-;12999:10;;;;;;;;;;;:19;;:27;13019:6;12999:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12942:92;:::o;2504:179::-;2562:7;2582:9;2598:1;2594;:5;;;;:::i;:::-;2582:17;;2623:1;2618;:6;;2610:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2674:1;2667:8;;;2504:179;;;;:::o;2691:136::-;2749:7;2776:43;2780:1;2783;2776:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2769:50;;2691:136;;;;:::o;3427:189::-;3513:7;3545:1;3541;:5;3548:12;3533:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3572:9;3588:1;3584;:5;;;;:::i;:::-;3572:17;;3607:1;3600:8;;;3427: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:248::-;369:1;379:113;393:6;390:1;387:13;379:113;;;478:1;473:3;469:11;463:18;459:1;454:3;450:11;443:39;415:2;412:1;408:10;403:15;;379:113;;;526:1;517:6;512:3;508:16;501:27;349:186;287:248;;;:::o;541:102::-;582:6;633:2;629:7;624:2;617:5;613:14;609:28;599:38;;541:102;;;:::o;649:377::-;737:3;765:39;798:5;765:39;:::i;:::-;820:71;884:6;879:3;820:71;:::i;:::-;813:78;;900:65;958:6;953:3;946:4;939:5;935:16;900:65;:::i;:::-;990:29;1012:6;990:29;:::i;:::-;985:3;981:39;974:46;;741:285;649:377;;;;:::o;1032:313::-;1145:4;1183:2;1172:9;1168:18;1160:26;;1232:9;1226:4;1222:20;1218:1;1207:9;1203:17;1196:47;1260:78;1333:4;1324:6;1260:78;:::i;:::-;1252:86;;1032:313;;;;:::o;1432:117::-;1541:1;1538;1531:12;1678:126;1715:7;1755:42;1748:5;1744:54;1733:65;;1678:126;;;:::o;1810:96::-;1847:7;1876:24;1894:5;1876:24;:::i;:::-;1865:35;;1810:96;;;:::o;1912:122::-;1985:24;2003:5;1985:24;:::i;:::-;1978:5;1975:35;1965:63;;2024:1;2021;2014:12;1965:63;1912:122;:::o;2040:139::-;2086:5;2124:6;2111:20;2102:29;;2140:33;2167:5;2140:33;:::i;:::-;2040:139;;;;:::o;2185:77::-;2222:7;2251:5;2240:16;;2185:77;;;:::o;2268:122::-;2341:24;2359:5;2341:24;:::i;:::-;2334:5;2331:35;2321:63;;2380:1;2377;2370:12;2321:63;2268:122;:::o;2396:139::-;2442:5;2480:6;2467:20;2458:29;;2496:33;2523:5;2496:33;:::i;:::-;2396:139;;;;:::o;2541:474::-;2609:6;2617;2666:2;2654:9;2645:7;2641:23;2637:32;2634:119;;;2672:79;;:::i;:::-;2634:119;2792:1;2817:53;2862:7;2853:6;2842:9;2838:22;2817:53;:::i;:::-;2807:63;;2763:117;2919:2;2945:53;2990:7;2981:6;2970:9;2966:22;2945:53;:::i;:::-;2935:63;;2890:118;2541:474;;;;;:::o;3021:90::-;3055:7;3098:5;3091:13;3084:21;3073:32;;3021:90;;;:::o;3117:109::-;3198:21;3213:5;3198:21;:::i;:::-;3193:3;3186:34;3117:109;;:::o;3232:210::-;3319:4;3357:2;3346:9;3342:18;3334:26;;3370:65;3432:1;3421:9;3417:17;3408:6;3370:65;:::i;:::-;3232:210;;;;:::o;3448:118::-;3535:24;3553:5;3535:24;:::i;:::-;3530:3;3523:37;3448:118;;:::o;3572:222::-;3665:4;3703:2;3692:9;3688:18;3680:26;;3716:71;3784:1;3773:9;3769:17;3760:6;3716:71;:::i;:::-;3572:222;;;;:::o;3800:619::-;3877:6;3885;3893;3942:2;3930:9;3921:7;3917:23;3913:32;3910:119;;;3948:79;;:::i;:::-;3910:119;4068:1;4093:53;4138:7;4129:6;4118:9;4114:22;4093:53;:::i;:::-;4083:63;;4039:117;4195:2;4221:53;4266:7;4257:6;4246:9;4242:22;4221:53;:::i;:::-;4211:63;;4166:118;4323:2;4349:53;4394:7;4385:6;4374:9;4370:22;4349:53;:::i;:::-;4339:63;;4294:118;3800:619;;;;;:::o;4425:86::-;4460:7;4500:4;4493:5;4489:16;4478:27;;4425:86;;;:::o;4517:112::-;4600:22;4616:5;4600:22;:::i;:::-;4595:3;4588:35;4517:112;;:::o;4635:214::-;4724:4;4762:2;4751:9;4747:18;4739:26;;4775:67;4839:1;4828:9;4824:17;4815:6;4775:67;:::i;:::-;4635:214;;;;:::o;4855:118::-;4942:24;4960:5;4942:24;:::i;:::-;4937:3;4930:37;4855:118;;:::o;4979:222::-;5072:4;5110:2;5099:9;5095:18;5087:26;;5123:71;5191:1;5180:9;5176:17;5167:6;5123:71;:::i;:::-;4979:222;;;;:::o;5207:329::-;5266:6;5315:2;5303:9;5294:7;5290:23;5286:32;5283:119;;;5321:79;;:::i;:::-;5283:119;5441:1;5466:53;5511:7;5502:6;5491:9;5487:22;5466:53;:::i;:::-;5456:63;;5412:117;5207:329;;;;:::o;5542:474::-;5610:6;5618;5667:2;5655:9;5646:7;5642:23;5638:32;5635:119;;;5673:79;;:::i;:::-;5635:119;5793:1;5818:53;5863:7;5854:6;5843:9;5839:22;5818:53;:::i;:::-;5808:63;;5764:117;5920:2;5946:53;5991:7;5982:6;5971:9;5967:22;5946:53;:::i;:::-;5936:63;;5891:118;5542:474;;;;;:::o;6022:182::-;6162:34;6158:1;6150:6;6146:14;6139:58;6022:182;:::o;6210:366::-;6352:3;6373:67;6437:2;6432:3;6373:67;:::i;:::-;6366:74;;6449:93;6538:3;6449:93;:::i;:::-;6567:2;6562:3;6558:12;6551:19;;6210:366;;;:::o;6582:419::-;6748:4;6786:2;6775:9;6771:18;6763:26;;6835:9;6829:4;6825:20;6821:1;6810:9;6806:17;6799:47;6863:131;6989:4;6863:131;:::i;:::-;6855:139;;6582:419;;;:::o;7007:180::-;7055:77;7052:1;7045:88;7152:4;7149:1;7142:15;7176:4;7173:1;7166:15;7193:102;7235:8;7282:5;7279:1;7275:13;7254:34;;7193:102;;;:::o;7301:848::-;7362:5;7369:4;7393:6;7384:15;;7417:5;7408:14;;7431:712;7452:1;7442:8;7439:15;7431:712;;;7547:4;7542:3;7538:14;7532:4;7529:24;7526:50;;;7556:18;;:::i;:::-;7526:50;7606:1;7596:8;7592:16;7589:451;;;8021:4;8014:5;8010:16;8001:25;;7589:451;8071:4;8065;8061:15;8053:23;;8101:32;8124:8;8101:32;:::i;:::-;8089:44;;7431:712;;;7301:848;;;;;;;:::o;8155:1073::-;8209:5;8400:8;8390:40;;8421:1;8412:10;;8423:5;;8390:40;8449:4;8439:36;;8466:1;8457:10;;8468:5;;8439:36;8535:4;8583:1;8578:27;;;;8619:1;8614:191;;;;8528:277;;8578:27;8596:1;8587:10;;8598:5;;;8614:191;8659:3;8649:8;8646:17;8643:43;;;8666:18;;:::i;:::-;8643:43;8715:8;8712:1;8708:16;8699:25;;8750:3;8743:5;8740:14;8737:40;;;8757:18;;:::i;:::-;8737:40;8790:5;;;8528:277;;8914:2;8904:8;8901:16;8895:3;8889:4;8886:13;8882:36;8864:2;8854:8;8851:16;8846:2;8840:4;8837:12;8833:35;8817:111;8814:246;;;8970:8;8964:4;8960:19;8951:28;;9005:3;8998:5;8995:14;8992:40;;;9012:18;;:::i;:::-;8992:40;9045:5;;8814:246;9085:42;9123:3;9113:8;9107:4;9104:1;9085:42;:::i;:::-;9070:57;;;;9159:4;9154:3;9150:14;9143:5;9140:25;9137:51;;;9168:18;;:::i;:::-;9137:51;9217:4;9210:5;9206:16;9197:25;;8155:1073;;;;;;:::o;9234:281::-;9292:5;9316:23;9334:4;9316:23;:::i;:::-;9308:31;;9360:25;9376:8;9360:25;:::i;:::-;9348:37;;9404:104;9441:66;9431:8;9425:4;9404:104;:::i;:::-;9395:113;;9234:281;;;;:::o;9521:410::-;9561:7;9584:20;9602:1;9584:20;:::i;:::-;9579:25;;9618:20;9636:1;9618:20;:::i;:::-;9613:25;;9673:1;9670;9666:9;9695:30;9713:11;9695:30;:::i;:::-;9684:41;;9874:1;9865:7;9861:15;9858:1;9855:22;9835:1;9828:9;9808:83;9785:139;;9904:18;;:::i;:::-;9785:139;9569:362;9521:410;;;;:::o;9937:174::-;10077:26;10073:1;10065:6;10061:14;10054:50;9937:174;:::o;10117:366::-;10259:3;10280:67;10344:2;10339:3;10280:67;:::i;:::-;10273:74;;10356:93;10445:3;10356:93;:::i;:::-;10474:2;10469:3;10465:12;10458:19;;10117:366;;;:::o;10489:419::-;10655:4;10693:2;10682:9;10678:18;10670:26;;10742:9;10736:4;10732:20;10728:1;10717:9;10713:17;10706:47;10770:131;10896:4;10770:131;:::i;:::-;10762:139;;10489:419;;;:::o;10914:143::-;10971:5;11002:6;10996:13;10987:22;;11018:33;11045:5;11018:33;:::i;:::-;10914:143;;;;:::o;11063:351::-;11133:6;11182:2;11170:9;11161:7;11157:23;11153:32;11150:119;;;11188:79;;:::i;:::-;11150:119;11308:1;11333:64;11389:7;11380:6;11369:9;11365:22;11333:64;:::i;:::-;11323:74;;11279:128;11063:351;;;;:::o;11420:332::-;11541:4;11579:2;11568:9;11564:18;11556:26;;11592:71;11660:1;11649:9;11645:17;11636:6;11592:71;:::i;:::-;11673:72;11741:2;11730:9;11726:18;11717:6;11673:72;:::i;:::-;11420:332;;;;;:::o;11758:85::-;11803:7;11832:5;11821:16;;11758:85;;;:::o;11849:60::-;11877:3;11898:5;11891:12;;11849:60;;;:::o;11915:158::-;11973:9;12006:61;12024:42;12033:32;12059:5;12033:32;:::i;:::-;12024:42;:::i;:::-;12006:61;:::i;:::-;11993:74;;11915:158;;;:::o;12079:147::-;12174:45;12213:5;12174:45;:::i;:::-;12169:3;12162:58;12079:147;;:::o;12232:807::-;12481:4;12519:3;12508:9;12504:19;12496:27;;12533:71;12601:1;12590:9;12586:17;12577:6;12533:71;:::i;:::-;12614:72;12682:2;12671:9;12667:18;12658:6;12614:72;:::i;:::-;12696:80;12772:2;12761:9;12757:18;12748:6;12696:80;:::i;:::-;12786;12862:2;12851:9;12847:18;12838:6;12786:80;:::i;:::-;12876:73;12944:3;12933:9;12929:19;12920:6;12876:73;:::i;:::-;12959;13027:3;13016:9;13012:19;13003:6;12959:73;:::i;:::-;12232:807;;;;;;;;;:::o;13045:143::-;13102:5;13133:6;13127:13;13118:22;;13149:33;13176:5;13149:33;:::i;:::-;13045:143;;;;:::o;13194:663::-;13282:6;13290;13298;13347:2;13335:9;13326:7;13322:23;13318:32;13315:119;;;13353:79;;:::i;:::-;13315:119;13473:1;13498:64;13554:7;13545:6;13534:9;13530:22;13498:64;:::i;:::-;13488:74;;13444:128;13611:2;13637:64;13693:7;13684:6;13673:9;13669:22;13637:64;:::i;:::-;13627:74;;13582:129;13750:2;13776:64;13832:7;13823:6;13812:9;13808:22;13776:64;:::i;:::-;13766:74;;13721:129;13194:663;;;;;:::o;13863:142::-;13913:9;13946:53;13964:34;13973:24;13991:5;13973:24;:::i;:::-;13964:34;:::i;:::-;13946:53;:::i;:::-;13933:66;;13863:142;;;:::o;14011:126::-;14061:9;14094:37;14125:5;14094:37;:::i;:::-;14081:50;;14011:126;;;:::o;14143:134::-;14201:9;14234:37;14265:5;14234:37;:::i;:::-;14221:50;;14143:134;;;:::o;14283:147::-;14378:45;14417:5;14378:45;:::i;:::-;14373:3;14366:58;14283:147;;:::o;14436:348::-;14565:4;14603:2;14592:9;14588:18;14580:26;;14616:79;14692:1;14681:9;14677:17;14668:6;14616:79;:::i;:::-;14705:72;14773:2;14762:9;14758:18;14749:6;14705:72;:::i;:::-;14436:348;;;;;:::o;14790:116::-;14860:21;14875:5;14860:21;:::i;:::-;14853:5;14850:32;14840:60;;14896:1;14893;14886:12;14840:60;14790:116;:::o;14912:137::-;14966:5;14997:6;14991:13;14982:22;;15013:30;15037:5;15013:30;:::i;:::-;14912:137;;;;:::o;15055:345::-;15122:6;15171:2;15159:9;15150:7;15146:23;15142:32;15139:119;;;15177:79;;:::i;:::-;15139:119;15297:1;15322:61;15375:7;15366:6;15355:9;15351:22;15322:61;:::i;:::-;15312:71;;15268:125;15055:345;;;;:::o;15406:223::-;15546:34;15542:1;15534:6;15530:14;15523:58;15615:6;15610:2;15602:6;15598:15;15591:31;15406:223;:::o;15635:366::-;15777:3;15798:67;15862:2;15857:3;15798:67;:::i;:::-;15791:74;;15874:93;15963:3;15874:93;:::i;:::-;15992:2;15987:3;15983:12;15976:19;;15635:366;;;:::o;16007:419::-;16173:4;16211:2;16200:9;16196:18;16188:26;;16260:9;16254:4;16250:20;16246:1;16235:9;16231:17;16224:47;16288:131;16414:4;16288:131;:::i;:::-;16280:139;;16007:419;;;:::o;16432:221::-;16572:34;16568:1;16560:6;16556:14;16549:58;16641:4;16636:2;16628:6;16624:15;16617:29;16432:221;:::o;16659:366::-;16801:3;16822:67;16886:2;16881:3;16822:67;:::i;:::-;16815:74;;16898:93;16987:3;16898:93;:::i;:::-;17016:2;17011:3;17007:12;17000:19;;16659:366;;;:::o;17031:419::-;17197:4;17235:2;17224:9;17220:18;17212:26;;17284:9;17278:4;17274:20;17270:1;17259:9;17255:17;17248:47;17312:131;17438:4;17312:131;:::i;:::-;17304:139;;17031:419;;;:::o;17456:224::-;17596:34;17592:1;17584:6;17580:14;17573:58;17665:7;17660:2;17652:6;17648:15;17641:32;17456:224;:::o;17686:366::-;17828:3;17849:67;17913:2;17908:3;17849:67;:::i;:::-;17842:74;;17925:93;18014:3;17925:93;:::i;:::-;18043:2;18038:3;18034:12;18027:19;;17686:366;;;:::o;18058:419::-;18224:4;18262:2;18251:9;18247:18;18239:26;;18311:9;18305:4;18301:20;18297:1;18286:9;18282:17;18275:47;18339:131;18465:4;18339:131;:::i;:::-;18331:139;;18058:419;;;:::o;18483:222::-;18623:34;18619:1;18611:6;18607:14;18600:58;18692:5;18687:2;18679:6;18675:15;18668:30;18483:222;:::o;18711:366::-;18853:3;18874:67;18938:2;18933:3;18874:67;:::i;:::-;18867:74;;18950:93;19039:3;18950:93;:::i;:::-;19068:2;19063:3;19059:12;19052:19;;18711:366;;;:::o;19083:419::-;19249:4;19287:2;19276:9;19272:18;19264:26;;19336:9;19330:4;19326:20;19322:1;19311:9;19307:17;19300:47;19364:131;19490:4;19364:131;:::i;:::-;19356:139;;19083:419;;;:::o;19508:228::-;19648:34;19644:1;19636:6;19632:14;19625:58;19717:11;19712:2;19704:6;19700:15;19693:36;19508:228;:::o;19742:366::-;19884:3;19905:67;19969:2;19964:3;19905:67;:::i;:::-;19898:74;;19981:93;20070:3;19981:93;:::i;:::-;20099:2;20094:3;20090:12;20083:19;;19742:366;;;:::o;20114:419::-;20280:4;20318:2;20307:9;20303:18;20295:26;;20367:9;20361:4;20357:20;20353:1;20342:9;20338:17;20331:47;20395:131;20521:4;20395:131;:::i;:::-;20387:139;;20114:419;;;:::o;20539:175::-;20679:27;20675:1;20667:6;20663:14;20656:51;20539:175;:::o;20720:366::-;20862:3;20883:67;20947:2;20942:3;20883:67;:::i;:::-;20876:74;;20959:93;21048:3;20959:93;:::i;:::-;21077:2;21072:3;21068:12;21061:19;;20720:366;;;:::o;21092:419::-;21258:4;21296:2;21285:9;21281:18;21273:26;;21345:9;21339:4;21335:20;21331:1;21320:9;21316:17;21309:47;21373:131;21499:4;21373:131;:::i;:::-;21365:139;;21092:419;;;:::o;21517:191::-;21557:3;21576:20;21594:1;21576:20;:::i;:::-;21571:25;;21610:20;21628:1;21610:20;:::i;:::-;21605:25;;21653:1;21650;21646:9;21639:16;;21674:3;21671:1;21668:10;21665:36;;;21681:18;;:::i;:::-;21665:36;21517:191;;;;:::o;21714:176::-;21854:28;21850:1;21842:6;21838:14;21831:52;21714:176;:::o;21896:366::-;22038:3;22059:67;22123:2;22118:3;22059:67;:::i;:::-;22052:74;;22135:93;22224:3;22135:93;:::i;:::-;22253:2;22248:3;22244:12;22237:19;;21896:366;;;:::o;22268:419::-;22434:4;22472:2;22461:9;22457:18;22449:26;;22521:9;22515:4;22511:20;22507:1;22496:9;22492:17;22485:47;22549:131;22675:4;22549:131;:::i;:::-;22541:139;;22268:419;;;:::o;22693:233::-;22732:3;22755:24;22773:5;22755:24;:::i;:::-;22746:33;;22801:66;22794:5;22791:77;22788:103;;22871:18;;:::i;:::-;22788:103;22918:1;22911:5;22907:13;22900:20;;22693:233;;;:::o;22932:165::-;23072:17;23068:1;23060:6;23056:14;23049:41;22932:165;:::o;23103:366::-;23245:3;23266:67;23330:2;23325:3;23266:67;:::i;:::-;23259:74;;23342:93;23431:3;23342:93;:::i;:::-;23460:2;23455:3;23451:12;23444:19;;23103:366;;;:::o;23475:419::-;23641:4;23679:2;23668:9;23664:18;23656:26;;23728:9;23722:4;23718:20;23714:1;23703:9;23699:17;23692:47;23756:131;23882:4;23756:131;:::i;:::-;23748:139;;23475:419;;;:::o;23900:194::-;23940:4;23960:20;23978:1;23960:20;:::i;:::-;23955:25;;23994:20;24012:1;23994:20;:::i;:::-;23989:25;;24038:1;24035;24031:9;24023:17;;24062:1;24056:4;24053:11;24050:37;;;24067:18;;:::i;:::-;24050:37;23900:194;;;;:::o;24100:180::-;24148:77;24145:1;24138:88;24245:4;24242:1;24235:15;24269:4;24266:1;24259:15;24286:185;24326:1;24343:20;24361:1;24343:20;:::i;:::-;24338:25;;24377:20;24395:1;24377:20;:::i;:::-;24372:25;;24416:1;24406:35;;24421:18;;:::i;:::-;24406:35;24463:1;24460;24456:9;24451:14;;24286:185;;;;:::o;24477:220::-;24617:34;24613:1;24605:6;24601:14;24594:58;24686:3;24681:2;24673:6;24669:15;24662:28;24477:220;:::o;24703:366::-;24845:3;24866:67;24930:2;24925:3;24866:67;:::i;:::-;24859:74;;24942:93;25031:3;24942:93;:::i;:::-;25060:2;25055:3;25051:12;25044:19;;24703:366;;;:::o;25075:419::-;25241:4;25279:2;25268:9;25264:18;25256:26;;25328:9;25322:4;25318:20;25314:1;25303:9;25299:17;25292:47;25356:131;25482:4;25356:131;:::i;:::-;25348:139;;25075:419;;;:::o;25500:180::-;25548:77;25545:1;25538:88;25645:4;25642:1;25635:15;25669:4;25666:1;25659:15;25686:180;25734:77;25731:1;25724:88;25831:4;25828:1;25821:15;25855:4;25852:1;25845:15;25872:114;25939:6;25973:5;25967:12;25957:22;;25872:114;;;:::o;25992:184::-;26091:11;26125:6;26120:3;26113:19;26165:4;26160:3;26156:14;26141:29;;25992:184;;;;:::o;26182:132::-;26249:4;26272:3;26264:11;;26302:4;26297:3;26293:14;26285:22;;26182:132;;;:::o;26320:108::-;26397:24;26415:5;26397:24;:::i;:::-;26392:3;26385:37;26320:108;;:::o;26434:179::-;26503:10;26524:46;26566:3;26558:6;26524:46;:::i;:::-;26602:4;26597:3;26593:14;26579:28;;26434:179;;;;:::o;26619:113::-;26689:4;26721;26716:3;26712:14;26704:22;;26619:113;;;:::o;26768:732::-;26887:3;26916:54;26964:5;26916:54;:::i;:::-;26986:86;27065:6;27060:3;26986:86;:::i;:::-;26979:93;;27096:56;27146:5;27096:56;:::i;:::-;27175:7;27206:1;27191:284;27216:6;27213:1;27210:13;27191:284;;;27292:6;27286:13;27319:63;27378:3;27363:13;27319:63;:::i;:::-;27312:70;;27405:60;27458:6;27405:60;:::i;:::-;27395:70;;27251:224;27238:1;27235;27231:9;27226:14;;27191:284;;;27195:14;27491:3;27484:10;;26892:608;;;26768:732;;;;:::o;27506:831::-;27769:4;27807:3;27796:9;27792:19;27784:27;;27821:71;27889:1;27878:9;27874:17;27865:6;27821:71;:::i;:::-;27902:80;27978:2;27967:9;27963:18;27954:6;27902:80;:::i;:::-;28029:9;28023:4;28019:20;28014:2;28003:9;27999:18;27992:48;28057:108;28160:4;28151:6;28057:108;:::i;:::-;28049:116;;28175:72;28243:2;28232:9;28228:18;28219:6;28175:72;:::i;:::-;28257:73;28325:3;28314:9;28310:19;28301:6;28257:73;:::i;:::-;27506:831;;;;;;;;:::o;28343:177::-;28483:29;28479:1;28471:6;28467:14;28460:53;28343:177;:::o;28526:366::-;28668:3;28689:67;28753:2;28748:3;28689:67;:::i;:::-;28682:74;;28765:93;28854:3;28765:93;:::i;:::-;28883:2;28878:3;28874:12;28867:19;;28526:366;;;:::o;28898:419::-;29064:4;29102:2;29091:9;29087:18;29079:26;;29151:9;29145:4;29141:20;29137:1;29126:9;29122:17;29115:47;29179:131;29305:4;29179:131;:::i;:::-;29171:139;;28898:419;;;:::o

Swarm Source

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