ETH Price: $3,158.32 (+1.95%)

Token

INOVAI (INOVAI)
 

Overview

Max Total Supply

10,000,000 INOVAI

Holders

498 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$10,102.30

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,749.114041900193119899 INOVAI

Value
$1.77 ( ~0.00056042526826345 Eth) [0.0175%]
0x3be4a4ccf4546d10296449b84b961e750a41d5b5
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

INOVAI represents a groundbreaking leap forward, merging the power of artificial intelligence with virtual machine technology. Our platform offers a gateway to a new era of computing, where users have the freedom to access their virtual PCs from anywhere, at any time.

Market

Volume (24H):$10.71
Market Capitalization:$0.00
Circulating Supply:0.00 INOVAI
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
INOVAI

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-04-05
*/

// SPDX-License-Identifier: MIT
/**

Welcome to the future of computing with INOVAI - Innovation of Virtual Artificial Intelligence

Website         : https://inovai.network/
Whitepaper      : https://inovai.gitbook.io/inovai/
Github          : https://github.com/GitINOVAI
Telegram        : https://t.me/Inovai_Official
Twitter         : https://twitter.com/InovAI_Official

**/

pragma solidity 0.8.21;

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(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract INOVAI is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    address payable private _feeWallet;
    address private uniswapV2Pair;
    IUniswapV2Router02 private uniswapV2Router;

    uint256 private constant _initialBuyTax = 25;
    uint256 private constant _initialSellTax = 25;
    uint256 private constant _reduceBuyTaxAt = 35;
    uint256 private constant _reduceSellTaxAt = 45;
    uint256 private constant _preventSwapBefore = 40;
    uint256 private _finalBuyTax = 15;
    uint256 private _finalSellTax = 25;
    uint256 private _buyCount = 0;
    uint256 private _countTax = 0;

    string private constant _name = unicode"INOVAI";
    string private constant _symbol = unicode"INOVAI";
    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 10000000 * 10**_decimals;
    uint256 public constant _countTrigger = 2000 * 10**_decimals;
    uint256 public constant _taxSwapThreshold = 20000 * 10**_decimals;
    uint256 public _maxTaxSwap = 20000 * 10**_decimals;
    uint256 public _maxTxAmount = 20000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000 * 10**_decimals;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event FinalTax(uint256 _valueBuy, uint256 _valueSell, bool _shelid);
    event TradingActive(bool _tradingOpen, bool _swapEnabled);
    event maxAmount(uint256 _value);

    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

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

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

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

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

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

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

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

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

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

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

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(
            owner != address(0) && spender != address(0),
            "ERC20: approve 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) && to != address(0),
            "ERC20: transfer the zero address"
        );
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;

        if (from != owner() && to != owner()) {
            if (!tradingOpen) {
                require(
                    _isExcludedFromFee[to] || _isExcludedFromFee[from],
                    "trading not yet open"
                );
            }

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

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

            _countTax += taxAmount;
            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                swapEnabled &&
                contractTokenBalance > _taxSwapThreshold &&
                _buyCount > _preventSwapBefore &&
                _countTax > _countTrigger
            ) {
                uint256 getMin = (contractTokenBalance > _maxTaxSwap)
                    ? _maxTaxSwap
                    : contractTokenBalance;
                swapTokensForEth((amount > getMin) ? getMin : amount);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                _countTax = 0;
            }
        }

        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 sendETHToFee(uint256 amount) private {
        _feeWallet.transfer(amount);
    }

    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 initializePair() external onlyOwner {
        require(!tradingOpen, "init already called");
        uint256 tokenAmount = balanceOf(address(this)).sub(
            _tTotal.mul(_initialBuyTax).div(100)
        );
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            tokenAmount,
            0,
            0,
            _msgSender(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );
    }

    function openTrading() external onlyOwner {
        require(!tradingOpen, "trading already open");
        swapEnabled = true;
        tradingOpen = true;
        emit TradingActive(tradingOpen, swapEnabled);
    }

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

    function setMaxTx(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWallet(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function setFees(uint256 _valueBuy, uint256 _valueSell) external onlyOwner {
        require( _valueBuy <= 30 && _valueSell <= 30 && tradingOpen,
            "Exceeds value"
        );
        _finalBuyTax = _valueBuy;
        _finalSellTax = _valueSell;
        uint256 clogSheild = _finalSellTax > 5 ? _maxTaxSwap = (5 *_tTotal).div(1000)  : (1 *_tTotal).div(100);
        emit FinalTax(_valueBuy, _valueSell, (clogSheild == (5 *_tTotal).div(1000)));
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"feeWallet","type":"address"}],"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":"_valueBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_valueSell","type":"uint256"},{"indexed":false,"internalType":"bool","name":"_shelid","type":"bool"}],"name":"FinalTax","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":false,"internalType":"bool","name":"_tradingOpen","type":"bool"},{"indexed":false,"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"TradingActive","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"maxAmount","type":"event"},{"inputs":[],"name":"_countTrigger","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"initializePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_valueBuy","type":"uint256"},{"internalType":"uint256","name":"_valueSell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600f60075560196008555f6009555f600a556012600a620000269190620005ca565b614e206200003591906200061a565b600b556012600a620000489190620005ca565b614e206200005791906200061a565b600c556012600a6200006a9190620005ca565b614e206200007991906200061a565b600d555f600e60016101000a81548160ff0219169083151502179055505f600e60026101000a81548160ff021916908315150217905550348015620000bc575f80fd5b5060405162003b3238038062003b328339818101604052810190620000e29190620006c9565b5f620000f36200040a60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620001df9190620005ca565b62989680620001ef91906200061a565b60015f620002026200040a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002546200041160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200037e6200040a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620003dc9190620005ca565b62989680620003ec91906200061a565b604051620003fb91906200070a565b60405180910390a35062000725565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004c2578086048111156200049a576200049962000438565b5b6001851615620004aa5780820291505b8081029050620004ba8562000465565b94506200047a565b94509492505050565b5f82620004dc5760019050620005ae565b81620004eb575f9050620005ae565b81600181146200050457600281146200050f5762000545565b6001915050620005ae565b60ff84111562000524576200052362000438565b5b8360020a9150848211156200053e576200053d62000438565b5b50620005ae565b5060208310610133831016604e8410600b84101617156200057f5782820a90508381111562000579576200057862000438565b5b620005ae565b6200058e848484600162000471565b92509050818404811115620005a857620005a762000438565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620005d682620005b5565b9150620005e383620005be565b9250620006127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004cb565b905092915050565b5f6200062682620005b5565b91506200063383620005b5565b92508282026200064381620005b5565b915082820484148315176200065d576200065c62000438565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620006938262000668565b9050919050565b620006a58162000687565b8114620006b0575f80fd5b50565b5f81519050620006c3816200069a565b92915050565b5f60208284031215620006e157620006e062000664565b5b5f620006f084828501620006b3565b91505092915050565b6200070481620005b5565b82525050565b5f6020820190506200071f5f830184620006f9565b92915050565b6133ff80620007335f395ff3fe608060405260043610610138575f3560e01c8063715018a6116100aa57806395d89b411161006e57806395d89b41146103d9578063a9059cbb14610403578063bc3371821461043f578063bf474bed14610467578063c9567bf914610491578063dd62ed3e146104a75761013f565b8063715018a61461032f578063751039fc146103455780637d1db4a51461035b5780638da5cb5b146103855780638f9a55c0146103af5761013f565b806318160ddd116100fc57806318160ddd1461022557806323b872dd1461024f578063313ce5671461028b5780634fab9e4c146102b55780635d0044ca146102cb57806370a08231146102f35761013f565b806306fdde0314610143578063095ea7b31461016d5780630b7640b8146101a95780630b78f9c0146101d35780630faee56f146101fb5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104e3565b6040516101649190612510565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e91906125c1565b610520565b6040516101a09190612619565b60405180910390f35b3480156101b4575f80fd5b506101bd61053d565b6040516101ca9190612641565b60405180910390f35b3480156101de575f80fd5b506101f960048036038101906101f4919061265a565b61055b565b005b348015610206575f80fd5b5061020f610771565b60405161021c9190612641565b60405180910390f35b348015610230575f80fd5b50610239610777565b6040516102469190612641565b60405180910390f35b34801561025a575f80fd5b5061027560048036038101906102709190612698565b610799565b6040516102829190612619565b60405180910390f35b348015610296575f80fd5b5061029f61086d565b6040516102ac9190612703565b60405180910390f35b3480156102c0575f80fd5b506102c9610875565b005b3480156102d6575f80fd5b506102f160048036038101906102ec919061271c565b610db7565b005b3480156102fe575f80fd5b5061031960048036038101906103149190612747565b610e55565b6040516103269190612641565b60405180910390f35b34801561033a575f80fd5b50610343610e9b565b005b348015610350575f80fd5b50610359610fe9565b005b348015610366575f80fd5b5061036f611115565b60405161037c9190612641565b60405180910390f35b348015610390575f80fd5b5061039961111b565b6040516103a69190612781565b60405180910390f35b3480156103ba575f80fd5b506103c3611142565b6040516103d09190612641565b60405180910390f35b3480156103e4575f80fd5b506103ed611148565b6040516103fa9190612510565b60405180910390f35b34801561040e575f80fd5b50610429600480360381019061042491906125c1565b611185565b6040516104369190612619565b60405180910390f35b34801561044a575f80fd5b506104656004803603810190610460919061271c565b6111a2565b005b348015610472575f80fd5b5061047b611240565b6040516104889190612641565b60405180910390f35b34801561049c575f80fd5b506104a561125e565b005b3480156104b2575f80fd5b506104cd60048036038101906104c8919061279a565b6113ce565b6040516104da9190612641565b60405180910390f35b60606040518060400160405280600681526020017f494e4f5641490000000000000000000000000000000000000000000000000000815250905090565b5f61053361052c611450565b8484611457565b6001905092915050565b6012600a61054b9190612934565b6107d0610558919061297e565b81565b610563611450565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e690612a09565b60405180910390fd5b601e82111580156106015750601e8111155b80156106185750600e5f9054906101000a900460ff165b610657576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064e90612a71565b60405180910390fd5b81600781905550806008819055505f6005600854116106b0576106ab60646012600a6106839190612934565b62989680610691919061297e565b600161069d919061297e565b6115e590919063ffffffff16565b6106f2565b6106ec6103e86012600a6106c49190612934565b629896806106d2919061297e565b60056106de919061297e565b6115e590919063ffffffff16565b600b8190555b90507f29ddd482d71f6b4ad9a6b3978c21b2aa56a029d1de02646578471e24a465cb4583836107536103e86012600a61072b9190612934565b62989680610739919061297e565b6005610745919061297e565b6115e590919063ffffffff16565b841460405161076493929190612a8f565b60405180910390a1505050565b600b5481565b5f6012600a6107869190612934565b62989680610794919061297e565b905090565b5f6107a584848461162e565b610862846107b1611450565b61085d856040518060600160405280602881526020016133a26028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610814611450565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fd39092919063ffffffff16565b611457565b600190509392505050565b5f6012905090565b61087d611450565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610909576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090090612a09565b60405180910390fd5b600e5f9054906101000a900460ff1615610958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094f90612b0e565b60405180910390fd5b5f6109b561099e606461099060196012600a6109749190612934565b62989680610982919061297e565b61203590919063ffffffff16565b6115e590919063ffffffff16565b6109a730610e55565b6120ac90919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a523060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610a3f9190612934565b62989680610a4d919061297e565b611457565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610abc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae09190612b40565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8a9190612b40565b6040518363ffffffff1660e01b8152600401610ba7929190612b6b565b6020604051808303815f875af1158015610bc3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be79190612b40565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f80610c70611450565b426040518863ffffffff1660e01b8152600401610c9296959493929190612bd4565b60606040518083038185885af1158015610cae573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610cd39190612c47565b50505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610d73929190612c97565b6020604051808303815f875af1158015610d8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db39190612ce8565b5050565b610dbf611450565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4290612a09565b60405180910390fd5b80600d8190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ea3611450565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2690612a09565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ff1611450565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461107d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107490612a09565b60405180910390fd5b6012600a61108b9190612934565b62989680611099919061297e565b600c819055506012600a6110ad9190612934565b629896806110bb919061297e565b600d819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96012600a6110f09190612934565b629896806110fe919061297e565b60405161110b9190612641565b60405180910390a1565b600c5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60606040518060400160405280600681526020017f494e4f5641490000000000000000000000000000000000000000000000000000815250905090565b5f611198611191611450565b848461162e565b6001905092915050565b6111aa611450565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122d90612a09565b60405180910390fd5b80600c8190555050565b6012600a61124e9190612934565b614e2061125b919061297e565b81565b611266611450565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e990612a09565b60405180910390fd5b600e5f9054906101000a900460ff1615611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612d5d565b60405180910390fd5b6001600e60026101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff0219169083151502179055507f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c600e5f9054906101000a900460ff16600e60029054906101000a900460ff166040516113c4929190612d7b565b60405180910390a1565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114bf57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6114fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f590612dec565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115d89190612641565b60405180910390a3505050565b5f61162683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120f5565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561169657505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6116d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cc90612e54565b60405180910390fd5b5f8111611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e90612ee2565b60405180910390fd5b5f61172061111b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561178e575061175e61111b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d2357600e5f9054906101000a900460ff166118815760035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611841575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187790612f4a565b60405180910390fd5b5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561192a575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561197d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a3757600c548211156119c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119be90612fb2565b60405180910390fd5b600d54826119d485610e55565b6119de9190612fd0565b1115611a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a169061304d565b60405180910390fd5b60095f815480929190611a319061306b565b91905055505b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611abf57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b0557611afe6064611af0602d60095411611add576019611ae1565b6008545b8561203590919063ffffffff16565b6115e590919063ffffffff16565b9050611bd0565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b8d57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bcf57611bcc6064611bbe602360095411611bab576019611baf565b6007545b8561203590919063ffffffff16565b6115e590919063ffffffff16565b90505b5b80600a5f828254611be19190612fd0565b925050819055505f611bf230610e55565b9050600e60019054906101000a900460ff16158015611c5d575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c755750600e60029054906101000a900460ff165b8015611c9a57506012600a611c8a9190612934565b614e20611c97919061297e565b81115b8015611ca857506028600954115b8015611ccf57506012600a611cbd9190612934565b6107d0611cca919061297e565b600a54115b15611d21575f600b548211611ce45781611ce8565b600b545b9050611d01818511611cfa5784611cfc565b815b612156565b5f4790505f811115611d1757611d16476123c1565b5b5f600a8190555050505b505b5f811115611e2257611d7b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461242990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e199190612641565b60405180910390a35b611e728260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120ac90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611f15611ec982846120ac90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461242990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611fb884866120ac90919063ffffffff16565b604051611fc59190612641565b60405180910390a350505050565b5f83831115829061201a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120119190612510565b60405180910390fd5b505f838561202891906130b2565b9050809150509392505050565b5f808303612045575f90506120a6565b5f8284612052919061297e565b90508284826120619190613112565b146120a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612098906131b2565b60405180910390fd5b809150505b92915050565b5f6120ed83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fd3565b905092915050565b5f808311829061213b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121329190612510565b60405180910390fd5b505f83856121499190613112565b9050809150509392505050565b6001600e60016101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561218d5761218c6131d0565b5b6040519080825280602002602001820160405280156121bb5781602001602082028036833780820191505090505b50905030815f815181106121d2576121d16131fd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612276573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061229a9190612b40565b816001815181106122ae576122ad6131fd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123143060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611457565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123769594939291906132e1565b5f604051808303815f87803b15801561238d575f80fd5b505af115801561239f573d5f803e3d5ffd5b50505050505f600e60016101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612425573d5f803e3d5ffd5b5050565b5f8082846124379190612fd0565b90508381101561247c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247390613383565b60405180910390fd5b8091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156124bd5780820151818401526020810190506124a2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6124e282612486565b6124ec8185612490565b93506124fc8185602086016124a0565b612505816124c8565b840191505092915050565b5f6020820190508181035f83015261252881846124d8565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61255d82612534565b9050919050565b61256d81612553565b8114612577575f80fd5b50565b5f8135905061258881612564565b92915050565b5f819050919050565b6125a08161258e565b81146125aa575f80fd5b50565b5f813590506125bb81612597565b92915050565b5f80604083850312156125d7576125d6612530565b5b5f6125e48582860161257a565b92505060206125f5858286016125ad565b9150509250929050565b5f8115159050919050565b612613816125ff565b82525050565b5f60208201905061262c5f83018461260a565b92915050565b61263b8161258e565b82525050565b5f6020820190506126545f830184612632565b92915050565b5f80604083850312156126705761266f612530565b5b5f61267d858286016125ad565b925050602061268e858286016125ad565b9150509250929050565b5f805f606084860312156126af576126ae612530565b5b5f6126bc8682870161257a565b93505060206126cd8682870161257a565b92505060406126de868287016125ad565b9150509250925092565b5f60ff82169050919050565b6126fd816126e8565b82525050565b5f6020820190506127165f8301846126f4565b92915050565b5f6020828403121561273157612730612530565b5b5f61273e848285016125ad565b91505092915050565b5f6020828403121561275c5761275b612530565b5b5f6127698482850161257a565b91505092915050565b61277b81612553565b82525050565b5f6020820190506127945f830184612772565b92915050565b5f80604083850312156127b0576127af612530565b5b5f6127bd8582860161257a565b92505060206127ce8582860161257a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561285a57808604811115612836576128356127d8565b5b60018516156128455780820291505b808102905061285385612805565b945061281a565b94509492505050565b5f82612872576001905061292d565b8161287f575f905061292d565b8160018114612895576002811461289f576128ce565b600191505061292d565b60ff8411156128b1576128b06127d8565b5b8360020a9150848211156128c8576128c76127d8565b5b5061292d565b5060208310610133831016604e8410600b84101617156129035782820a9050838111156128fe576128fd6127d8565b5b61292d565b6129108484846001612811565b92509050818404811115612927576129266127d8565b5b81810290505b9392505050565b5f61293e8261258e565b9150612949836126e8565b92506129767fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612863565b905092915050565b5f6129888261258e565b91506129938361258e565b92508282026129a18161258e565b915082820484148315176129b8576129b76127d8565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129f3602083612490565b91506129fe826129bf565b602082019050919050565b5f6020820190508181035f830152612a20816129e7565b9050919050565b7f457863656564732076616c7565000000000000000000000000000000000000005f82015250565b5f612a5b600d83612490565b9150612a6682612a27565b602082019050919050565b5f6020820190508181035f830152612a8881612a4f565b9050919050565b5f606082019050612aa25f830186612632565b612aaf6020830185612632565b612abc604083018461260a565b949350505050565b7f696e697420616c72656164792063616c6c6564000000000000000000000000005f82015250565b5f612af8601383612490565b9150612b0382612ac4565b602082019050919050565b5f6020820190508181035f830152612b2581612aec565b9050919050565b5f81519050612b3a81612564565b92915050565b5f60208284031215612b5557612b54612530565b5b5f612b6284828501612b2c565b91505092915050565b5f604082019050612b7e5f830185612772565b612b8b6020830184612772565b9392505050565b5f819050919050565b5f819050919050565b5f612bbe612bb9612bb484612b92565b612b9b565b61258e565b9050919050565b612bce81612ba4565b82525050565b5f60c082019050612be75f830189612772565b612bf46020830188612632565b612c016040830187612bc5565b612c0e6060830186612bc5565b612c1b6080830185612772565b612c2860a0830184612632565b979650505050505050565b5f81519050612c4181612597565b92915050565b5f805f60608486031215612c5e57612c5d612530565b5b5f612c6b86828701612c33565b9350506020612c7c86828701612c33565b9250506040612c8d86828701612c33565b9150509250925092565b5f604082019050612caa5f830185612772565b612cb76020830184612632565b9392505050565b612cc7816125ff565b8114612cd1575f80fd5b50565b5f81519050612ce281612cbe565b92915050565b5f60208284031215612cfd57612cfc612530565b5b5f612d0a84828501612cd4565b91505092915050565b7f74726164696e6720616c7265616479206f70656e0000000000000000000000005f82015250565b5f612d47601483612490565b9150612d5282612d13565b602082019050919050565b5f6020820190508181035f830152612d7481612d3b565b9050919050565b5f604082019050612d8e5f83018561260a565b612d9b602083018461260a565b9392505050565b7f45524332303a20617070726f766520746865207a65726f2061646472657373005f82015250565b5f612dd6601f83612490565b9150612de182612da2565b602082019050919050565b5f6020820190508181035f830152612e0381612dca565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f20616464726573735f82015250565b5f612e3e602083612490565b9150612e4982612e0a565b602082019050919050565b5f6020820190508181035f830152612e6b81612e32565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ecc602983612490565b9150612ed782612e72565b604082019050919050565b5f6020820190508181035f830152612ef981612ec0565b9050919050565b7f74726164696e67206e6f7420796574206f70656e0000000000000000000000005f82015250565b5f612f34601483612490565b9150612f3f82612f00565b602082019050919050565b5f6020820190508181035f830152612f6181612f28565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f9c601983612490565b9150612fa782612f68565b602082019050919050565b5f6020820190508181035f830152612fc981612f90565b9050919050565b5f612fda8261258e565b9150612fe58361258e565b9250828201905080821115612ffd57612ffc6127d8565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613037601a83612490565b915061304282613003565b602082019050919050565b5f6020820190508181035f8301526130648161302b565b9050919050565b5f6130758261258e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130a7576130a66127d8565b5b600182019050919050565b5f6130bc8261258e565b91506130c78361258e565b92508282039050818111156130df576130de6127d8565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61311c8261258e565b91506131278361258e565b925082613137576131366130e5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61319c602183612490565b91506131a782613142565b604082019050919050565b5f6020820190508181035f8301526131c981613190565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61325c81612553565b82525050565b5f61326d8383613253565b60208301905092915050565b5f602082019050919050565b5f61328f8261322a565b6132998185613234565b93506132a483613244565b805f5b838110156132d45781516132bb8882613262565b97506132c683613279565b9250506001810190506132a7565b5085935050505092915050565b5f60a0820190506132f45f830188612632565b6133016020830187612bc5565b81810360408301526133138186613285565b90506133226060830185612772565b61332f6080830184612632565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61336d601b83612490565b915061337882613339565b602082019050919050565b5f6020820190508181035f83015261339a81613361565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206f9e0d7b112dd7a0306de02ecb42d3405ac8363c80b7e715bb17a28a7a3ced1c64736f6c634300081500330000000000000000000000005111973f1d35ed7accd9b43a19190c26f2168a48

Deployed Bytecode

0x608060405260043610610138575f3560e01c8063715018a6116100aa57806395d89b411161006e57806395d89b41146103d9578063a9059cbb14610403578063bc3371821461043f578063bf474bed14610467578063c9567bf914610491578063dd62ed3e146104a75761013f565b8063715018a61461032f578063751039fc146103455780637d1db4a51461035b5780638da5cb5b146103855780638f9a55c0146103af5761013f565b806318160ddd116100fc57806318160ddd1461022557806323b872dd1461024f578063313ce5671461028b5780634fab9e4c146102b55780635d0044ca146102cb57806370a08231146102f35761013f565b806306fdde0314610143578063095ea7b31461016d5780630b7640b8146101a95780630b78f9c0146101d35780630faee56f146101fb5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104e3565b6040516101649190612510565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e91906125c1565b610520565b6040516101a09190612619565b60405180910390f35b3480156101b4575f80fd5b506101bd61053d565b6040516101ca9190612641565b60405180910390f35b3480156101de575f80fd5b506101f960048036038101906101f4919061265a565b61055b565b005b348015610206575f80fd5b5061020f610771565b60405161021c9190612641565b60405180910390f35b348015610230575f80fd5b50610239610777565b6040516102469190612641565b60405180910390f35b34801561025a575f80fd5b5061027560048036038101906102709190612698565b610799565b6040516102829190612619565b60405180910390f35b348015610296575f80fd5b5061029f61086d565b6040516102ac9190612703565b60405180910390f35b3480156102c0575f80fd5b506102c9610875565b005b3480156102d6575f80fd5b506102f160048036038101906102ec919061271c565b610db7565b005b3480156102fe575f80fd5b5061031960048036038101906103149190612747565b610e55565b6040516103269190612641565b60405180910390f35b34801561033a575f80fd5b50610343610e9b565b005b348015610350575f80fd5b50610359610fe9565b005b348015610366575f80fd5b5061036f611115565b60405161037c9190612641565b60405180910390f35b348015610390575f80fd5b5061039961111b565b6040516103a69190612781565b60405180910390f35b3480156103ba575f80fd5b506103c3611142565b6040516103d09190612641565b60405180910390f35b3480156103e4575f80fd5b506103ed611148565b6040516103fa9190612510565b60405180910390f35b34801561040e575f80fd5b50610429600480360381019061042491906125c1565b611185565b6040516104369190612619565b60405180910390f35b34801561044a575f80fd5b506104656004803603810190610460919061271c565b6111a2565b005b348015610472575f80fd5b5061047b611240565b6040516104889190612641565b60405180910390f35b34801561049c575f80fd5b506104a561125e565b005b3480156104b2575f80fd5b506104cd60048036038101906104c8919061279a565b6113ce565b6040516104da9190612641565b60405180910390f35b60606040518060400160405280600681526020017f494e4f5641490000000000000000000000000000000000000000000000000000815250905090565b5f61053361052c611450565b8484611457565b6001905092915050565b6012600a61054b9190612934565b6107d0610558919061297e565b81565b610563611450565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e690612a09565b60405180910390fd5b601e82111580156106015750601e8111155b80156106185750600e5f9054906101000a900460ff165b610657576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064e90612a71565b60405180910390fd5b81600781905550806008819055505f6005600854116106b0576106ab60646012600a6106839190612934565b62989680610691919061297e565b600161069d919061297e565b6115e590919063ffffffff16565b6106f2565b6106ec6103e86012600a6106c49190612934565b629896806106d2919061297e565b60056106de919061297e565b6115e590919063ffffffff16565b600b8190555b90507f29ddd482d71f6b4ad9a6b3978c21b2aa56a029d1de02646578471e24a465cb4583836107536103e86012600a61072b9190612934565b62989680610739919061297e565b6005610745919061297e565b6115e590919063ffffffff16565b841460405161076493929190612a8f565b60405180910390a1505050565b600b5481565b5f6012600a6107869190612934565b62989680610794919061297e565b905090565b5f6107a584848461162e565b610862846107b1611450565b61085d856040518060600160405280602881526020016133a26028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610814611450565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fd39092919063ffffffff16565b611457565b600190509392505050565b5f6012905090565b61087d611450565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610909576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090090612a09565b60405180910390fd5b600e5f9054906101000a900460ff1615610958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094f90612b0e565b60405180910390fd5b5f6109b561099e606461099060196012600a6109749190612934565b62989680610982919061297e565b61203590919063ffffffff16565b6115e590919063ffffffff16565b6109a730610e55565b6120ac90919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a523060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610a3f9190612934565b62989680610a4d919061297e565b611457565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610abc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae09190612b40565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8a9190612b40565b6040518363ffffffff1660e01b8152600401610ba7929190612b6b565b6020604051808303815f875af1158015610bc3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be79190612b40565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730845f80610c70611450565b426040518863ffffffff1660e01b8152600401610c9296959493929190612bd4565b60606040518083038185885af1158015610cae573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610cd39190612c47565b50505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610d73929190612c97565b6020604051808303815f875af1158015610d8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db39190612ce8565b5050565b610dbf611450565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4290612a09565b60405180910390fd5b80600d8190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ea3611450565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2690612a09565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ff1611450565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461107d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107490612a09565b60405180910390fd5b6012600a61108b9190612934565b62989680611099919061297e565b600c819055506012600a6110ad9190612934565b629896806110bb919061297e565b600d819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96012600a6110f09190612934565b629896806110fe919061297e565b60405161110b9190612641565b60405180910390a1565b600c5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60606040518060400160405280600681526020017f494e4f5641490000000000000000000000000000000000000000000000000000815250905090565b5f611198611191611450565b848461162e565b6001905092915050565b6111aa611450565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122d90612a09565b60405180910390fd5b80600c8190555050565b6012600a61124e9190612934565b614e2061125b919061297e565b81565b611266611450565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e990612a09565b60405180910390fd5b600e5f9054906101000a900460ff1615611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612d5d565b60405180910390fd5b6001600e60026101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff0219169083151502179055507f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c600e5f9054906101000a900460ff16600e60029054906101000a900460ff166040516113c4929190612d7b565b60405180910390a1565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114bf57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6114fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f590612dec565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115d89190612641565b60405180910390a3505050565b5f61162683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120f5565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561169657505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6116d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cc90612e54565b60405180910390fd5b5f8111611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e90612ee2565b60405180910390fd5b5f61172061111b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561178e575061175e61111b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d2357600e5f9054906101000a900460ff166118815760035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611841575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187790612f4a565b60405180910390fd5b5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561192a575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561197d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a3757600c548211156119c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119be90612fb2565b60405180910390fd5b600d54826119d485610e55565b6119de9190612fd0565b1115611a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a169061304d565b60405180910390fd5b60095f815480929190611a319061306b565b91905055505b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611abf57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b0557611afe6064611af0602d60095411611add576019611ae1565b6008545b8561203590919063ffffffff16565b6115e590919063ffffffff16565b9050611bd0565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b8d57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bcf57611bcc6064611bbe602360095411611bab576019611baf565b6007545b8561203590919063ffffffff16565b6115e590919063ffffffff16565b90505b5b80600a5f828254611be19190612fd0565b925050819055505f611bf230610e55565b9050600e60019054906101000a900460ff16158015611c5d575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c755750600e60029054906101000a900460ff165b8015611c9a57506012600a611c8a9190612934565b614e20611c97919061297e565b81115b8015611ca857506028600954115b8015611ccf57506012600a611cbd9190612934565b6107d0611cca919061297e565b600a54115b15611d21575f600b548211611ce45781611ce8565b600b545b9050611d01818511611cfa5784611cfc565b815b612156565b5f4790505f811115611d1757611d16476123c1565b5b5f600a8190555050505b505b5f811115611e2257611d7b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461242990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e199190612641565b60405180910390a35b611e728260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120ac90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611f15611ec982846120ac90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461242990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611fb884866120ac90919063ffffffff16565b604051611fc59190612641565b60405180910390a350505050565b5f83831115829061201a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120119190612510565b60405180910390fd5b505f838561202891906130b2565b9050809150509392505050565b5f808303612045575f90506120a6565b5f8284612052919061297e565b90508284826120619190613112565b146120a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612098906131b2565b60405180910390fd5b809150505b92915050565b5f6120ed83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fd3565b905092915050565b5f808311829061213b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121329190612510565b60405180910390fd5b505f83856121499190613112565b9050809150509392505050565b6001600e60016101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561218d5761218c6131d0565b5b6040519080825280602002602001820160405280156121bb5781602001602082028036833780820191505090505b50905030815f815181106121d2576121d16131fd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612276573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061229a9190612b40565b816001815181106122ae576122ad6131fd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123143060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611457565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123769594939291906132e1565b5f604051808303815f87803b15801561238d575f80fd5b505af115801561239f573d5f803e3d5ffd5b50505050505f600e60016101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612425573d5f803e3d5ffd5b5050565b5f8082846124379190612fd0565b90508381101561247c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247390613383565b60405180910390fd5b8091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156124bd5780820151818401526020810190506124a2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6124e282612486565b6124ec8185612490565b93506124fc8185602086016124a0565b612505816124c8565b840191505092915050565b5f6020820190508181035f83015261252881846124d8565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61255d82612534565b9050919050565b61256d81612553565b8114612577575f80fd5b50565b5f8135905061258881612564565b92915050565b5f819050919050565b6125a08161258e565b81146125aa575f80fd5b50565b5f813590506125bb81612597565b92915050565b5f80604083850312156125d7576125d6612530565b5b5f6125e48582860161257a565b92505060206125f5858286016125ad565b9150509250929050565b5f8115159050919050565b612613816125ff565b82525050565b5f60208201905061262c5f83018461260a565b92915050565b61263b8161258e565b82525050565b5f6020820190506126545f830184612632565b92915050565b5f80604083850312156126705761266f612530565b5b5f61267d858286016125ad565b925050602061268e858286016125ad565b9150509250929050565b5f805f606084860312156126af576126ae612530565b5b5f6126bc8682870161257a565b93505060206126cd8682870161257a565b92505060406126de868287016125ad565b9150509250925092565b5f60ff82169050919050565b6126fd816126e8565b82525050565b5f6020820190506127165f8301846126f4565b92915050565b5f6020828403121561273157612730612530565b5b5f61273e848285016125ad565b91505092915050565b5f6020828403121561275c5761275b612530565b5b5f6127698482850161257a565b91505092915050565b61277b81612553565b82525050565b5f6020820190506127945f830184612772565b92915050565b5f80604083850312156127b0576127af612530565b5b5f6127bd8582860161257a565b92505060206127ce8582860161257a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561285a57808604811115612836576128356127d8565b5b60018516156128455780820291505b808102905061285385612805565b945061281a565b94509492505050565b5f82612872576001905061292d565b8161287f575f905061292d565b8160018114612895576002811461289f576128ce565b600191505061292d565b60ff8411156128b1576128b06127d8565b5b8360020a9150848211156128c8576128c76127d8565b5b5061292d565b5060208310610133831016604e8410600b84101617156129035782820a9050838111156128fe576128fd6127d8565b5b61292d565b6129108484846001612811565b92509050818404811115612927576129266127d8565b5b81810290505b9392505050565b5f61293e8261258e565b9150612949836126e8565b92506129767fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612863565b905092915050565b5f6129888261258e565b91506129938361258e565b92508282026129a18161258e565b915082820484148315176129b8576129b76127d8565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129f3602083612490565b91506129fe826129bf565b602082019050919050565b5f6020820190508181035f830152612a20816129e7565b9050919050565b7f457863656564732076616c7565000000000000000000000000000000000000005f82015250565b5f612a5b600d83612490565b9150612a6682612a27565b602082019050919050565b5f6020820190508181035f830152612a8881612a4f565b9050919050565b5f606082019050612aa25f830186612632565b612aaf6020830185612632565b612abc604083018461260a565b949350505050565b7f696e697420616c72656164792063616c6c6564000000000000000000000000005f82015250565b5f612af8601383612490565b9150612b0382612ac4565b602082019050919050565b5f6020820190508181035f830152612b2581612aec565b9050919050565b5f81519050612b3a81612564565b92915050565b5f60208284031215612b5557612b54612530565b5b5f612b6284828501612b2c565b91505092915050565b5f604082019050612b7e5f830185612772565b612b8b6020830184612772565b9392505050565b5f819050919050565b5f819050919050565b5f612bbe612bb9612bb484612b92565b612b9b565b61258e565b9050919050565b612bce81612ba4565b82525050565b5f60c082019050612be75f830189612772565b612bf46020830188612632565b612c016040830187612bc5565b612c0e6060830186612bc5565b612c1b6080830185612772565b612c2860a0830184612632565b979650505050505050565b5f81519050612c4181612597565b92915050565b5f805f60608486031215612c5e57612c5d612530565b5b5f612c6b86828701612c33565b9350506020612c7c86828701612c33565b9250506040612c8d86828701612c33565b9150509250925092565b5f604082019050612caa5f830185612772565b612cb76020830184612632565b9392505050565b612cc7816125ff565b8114612cd1575f80fd5b50565b5f81519050612ce281612cbe565b92915050565b5f60208284031215612cfd57612cfc612530565b5b5f612d0a84828501612cd4565b91505092915050565b7f74726164696e6720616c7265616479206f70656e0000000000000000000000005f82015250565b5f612d47601483612490565b9150612d5282612d13565b602082019050919050565b5f6020820190508181035f830152612d7481612d3b565b9050919050565b5f604082019050612d8e5f83018561260a565b612d9b602083018461260a565b9392505050565b7f45524332303a20617070726f766520746865207a65726f2061646472657373005f82015250565b5f612dd6601f83612490565b9150612de182612da2565b602082019050919050565b5f6020820190508181035f830152612e0381612dca565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f20616464726573735f82015250565b5f612e3e602083612490565b9150612e4982612e0a565b602082019050919050565b5f6020820190508181035f830152612e6b81612e32565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ecc602983612490565b9150612ed782612e72565b604082019050919050565b5f6020820190508181035f830152612ef981612ec0565b9050919050565b7f74726164696e67206e6f7420796574206f70656e0000000000000000000000005f82015250565b5f612f34601483612490565b9150612f3f82612f00565b602082019050919050565b5f6020820190508181035f830152612f6181612f28565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f9c601983612490565b9150612fa782612f68565b602082019050919050565b5f6020820190508181035f830152612fc981612f90565b9050919050565b5f612fda8261258e565b9150612fe58361258e565b9250828201905080821115612ffd57612ffc6127d8565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613037601a83612490565b915061304282613003565b602082019050919050565b5f6020820190508181035f8301526130648161302b565b9050919050565b5f6130758261258e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130a7576130a66127d8565b5b600182019050919050565b5f6130bc8261258e565b91506130c78361258e565b92508282039050818111156130df576130de6127d8565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61311c8261258e565b91506131278361258e565b925082613137576131366130e5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61319c602183612490565b91506131a782613142565b604082019050919050565b5f6020820190508181035f8301526131c981613190565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61325c81612553565b82525050565b5f61326d8383613253565b60208301905092915050565b5f602082019050919050565b5f61328f8261322a565b6132998185613234565b93506132a483613244565b805f5b838110156132d45781516132bb8882613262565b97506132c683613279565b9250506001810190506132a7565b5085935050505092915050565b5f60a0820190506132f45f830188612632565b6133016020830187612bc5565b81810360408301526133138186613285565b90506133226060830185612772565b61332f6080830184612632565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61336d601b83612490565b915061337882613339565b602082019050919050565b5f6020820190508181035f83015261339a81613361565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206f9e0d7b112dd7a0306de02ecb42d3405ac8363c80b7e715bb17a28a7a3ced1c64736f6c63430008150033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000005111973f1d35ed7accd9b43a19190c26f2168a48

-----Decoded View---------------
Arg [0] : feeWallet (address): 0x5111973f1d35ED7AcCd9b43a19190C26f2168a48

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000005111973f1d35ed7accd9b43a19190c26f2168a48


Deployed Bytecode Sourcemap

4176:9625:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6250:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7156:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5212:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13295:466;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5351:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6527:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7357:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6436:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11750:921;;;;;;;;;;;;;:::i;:::-;;13176:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6630:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3128:148;;;;;;;;;;;;;:::i;:::-;;12906:153;;;;;;;;;;;;;:::i;:::-;;5408:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2914:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5466:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6341:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6757:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13067:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5279:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12679:219;;;;;;;;;;;;;:::i;:::-;;6964:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6250:83;6287:13;6320:5;;;;;;;;;;;;;;;;;6313:12;;6250:83;:::o;7156:193::-;7258:4;7280:39;7289:12;:10;:12::i;:::-;7303:7;7312:6;7280:8;:39::i;:::-;7337:4;7330:11;;7156:193;;;;:::o;5212:60::-;5137:2;5259;:13;;;;:::i;:::-;5252:4;:20;;;;:::i;:::-;5212:60;:::o;13295:466::-;3051:12;:10;:12::i;:::-;3041:22;;:6;;;;;;;;;;:22;;;3033:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13403:2:::1;13390:9;:15;;:35;;;;;13423:2;13409:10;:16;;13390:35;:50;;;;;13429:11;;;;;;;;;;;13390:50;13381:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;13507:9;13492:12;:24;;;;13543:10;13527:13;:26;;;;13564:18;13601:1;13585:13;;:17;:81;;13645:21;13662:3;5137:2;5192;:13;;;;:::i;:::-;5181:8;:24;;;;:::i;:::-;13646:1;:10;;;;:::i;:::-;13645:16;;:21;;;;:::i;:::-;13585:81;;;13619:22;13636:4;5137:2;5192;:13;;;;:::i;:::-;5181:8;:24;;;;:::i;:::-;13620:1;:10;;;;:::i;:::-;13619:16;;:22;;;;:::i;:::-;13605:11;:36;;;13585:81;13564:102;;13682:71;13691:9;13702:10;13729:22;13746:4;5137:2;5192;:13;;;;:::i;:::-;5181:8;:24;;;;:::i;:::-;13730:1;:10;;;;:::i;:::-;13729:16;;:22;;;;:::i;:::-;13715:10;:36;13682:71;;;;;;;;:::i;:::-;;;;;;;;13370:391;13295:466:::0;;:::o;5351:50::-;;;;:::o;6527:95::-;6580:7;5137:2;5192;:13;;;;:::i;:::-;5181:8;:24;;;;:::i;:::-;6600:14;;6527:95;:::o;7357:446::-;7489:4;7506:36;7516:6;7524:9;7535:6;7506:9;:36::i;:::-;7553:220;7576:6;7597:12;:10;:12::i;:::-;7624:138;7680:6;7624:138;;;;;;;;;;;;;;;;;:11;:19;7636:6;7624:19;;;;;;;;;;;;;;;:33;7644:12;:10;:12::i;:::-;7624:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7553:8;:220::i;:::-;7791:4;7784:11;;7357:446;;;;;:::o;6436:83::-;6477:5;5137:2;6495:16;;6436:83;:::o;11750:921::-;3051:12;:10;:12::i;:::-;3041:22;;:6;;;;;;;;;;:22;;;3033:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11815:11:::1;;;;;;;;;;;11814:12;11806:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;11861:19;11883:90;11926:36;11958:3;11926:27;4616:2;5137;5192;:13;;;;:::i;:::-;5181:8;:24;;;;:::i;:::-;11926:11;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;11883:24;11901:4;11883:9;:24::i;:::-;:28;;:90;;;;:::i;:::-;11861:112;;12035:42;11984:15;;:104;;;;;;;;;;;;;;;;;;12099:58;12116:4;12131:15;;;;;;;;;;;5137:2;5192;:13;;;;:::i;:::-;5181:8;:24;;;;:::i;:::-;12099:8;:58::i;:::-;12202:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12184:55;;;12262:4;12282:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12184:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12168:13;;:147;;;;;;;;;;;;;;;;;;12326:15;;;;;;;;;;;:31;;;12365:21;12410:4;12430:11;12456:1;12472::::0;12488:12:::1;:10;:12::i;:::-;12515:15;12326:215;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12559:13;;;;;;;;;;;12552:29;;;12604:15;;;;;;;;;;;12635:17;12552:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11795:876;11750:921::o:0;13176:111::-;3051:12;:10;:12::i;:::-;3041:22;;:6;;;;;;;;;;:22;;;3033:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13266:13:::1;13249:14;:30;;;;13176:111:::0;:::o;6630:119::-;6696:7;6723:9;:18;6733:7;6723:18;;;;;;;;;;;;;;;;6716:25;;6630:119;;;:::o;3128:148::-;3051:12;:10;:12::i;:::-;3041:22;;:6;;;;;;;;;;:22;;;3033:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3235:1:::1;3198:40;;3219:6;::::0;::::1;;;;;;;;3198:40;;;;;;;;;;;;3266:1;3249:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3128:148::o:0;12906:153::-;3051:12;:10;:12::i;:::-;3041:22;;:6;;;;;;;;;;:22;;;3033:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5137:2:::1;5192;:13;;;;:::i;:::-;5181:8;:24;;;;:::i;:::-;12960:12;:22;;;;5137:2;5192;:13;;;;:::i;:::-;5181:8;:24;;;;:::i;:::-;12993:14;:24;;;;13033:18;5137:2;5192;:13;;;;:::i;:::-;5181:8;:24;;;;:::i;:::-;13033:18;;;;;;:::i;:::-;;;;;;;;12906:153::o:0;5408:51::-;;;;:::o;2914:79::-;2952:7;2979:6;;;;;;;;;;;2972:13;;2914:79;:::o;5466:53::-;;;;:::o;6341:87::-;6380:13;6413:7;;;;;;;;;;;;;;;;;6406:14;;6341:87;:::o;6757:199::-;6862:4;6884:42;6894:12;:10;:12::i;:::-;6908:9;6919:6;6884:9;:42::i;:::-;6944:4;6937:11;;6757:199;;;;:::o;13067:101::-;3051:12;:10;:12::i;:::-;3041:22;;:6;;;;;;;;;;:22;;;3033:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13149:11:::1;13134:12;:26;;;;13067:101:::0;:::o;5279:65::-;5137:2;5331;:13;;;;:::i;:::-;5323:5;:21;;;;:::i;:::-;5279:65;:::o;12679:219::-;3051:12;:10;:12::i;:::-;3041:22;;:6;;;;;;;;;;:22;;;3033:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12741:11:::1;;;;;;;;;;;12740:12;12732:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;12802:4;12788:11;;:18;;;;;;;;;;;;;;;;;;12831:4;12817:11;;:18;;;;;;;;;;;;;;;;;;12851:39;12865:11;;;;;;;;;;;12878;;;;;;;;;;;12851:39;;;;;;;:::i;:::-;;;;;;;;12679:219::o:0;6964:184::-;7081:7;7113:11;:18;7125:5;7113:18;;;;;;;;;;;;;;;:27;7132:7;7113:27;;;;;;;;;;;;;;;;7106:34;;6964:184;;;;:::o;454:98::-;507:7;534:10;527:17;;454:98;:::o;7811:347::-;7969:1;7952:19;;:5;:19;;;;:44;;;;;7994:1;7975:21;;:7;:21;;;;7952:44;7930:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;8096:6;8066:11;:18;8078:5;8066:18;;;;;;;;;;;;;;;:27;8085:7;8066:27;;;;;;;;;;;;;;;:36;;;;8134:7;8118:32;;8127:5;8118:32;;;8143:6;8118:32;;;;;;:::i;:::-;;;;;;;;7811:347;;;:::o;2202:132::-;2260:7;2287:39;2291:1;2294;2287:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2280:46;;2202:132;;;;:::o;8166:2985::-;8318:1;8302:18;;:4;:18;;;;:38;;;;;8338:1;8324:16;;:2;:16;;;;8302:38;8280:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;8428:1;8419:6;:10;8411:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8486:17;8532:7;:5;:7::i;:::-;8524:15;;:4;:15;;;;:32;;;;;8549:7;:5;:7::i;:::-;8543:13;;:2;:13;;;;8524:32;8520:2260;;;8578:11;;;;;;;;;;;8573:197;;8640:18;:22;8659:2;8640:22;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8666:18;:24;8685:4;8666:24;;;;;;;;;;;;;;;;;;;;;;;;;8640:50;8610:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;8573:197;8816:13;;;;;;;;;;;8808:21;;:4;:21;;;:72;;;;;8864:15;;;;;;;;;;;8850:30;;:2;:30;;;;8808:72;:116;;;;;8902:18;:22;8921:2;8902:22;;;;;;;;;;;;;;;;;;;;;;;;;8901:23;8808:116;8786:438;;;8977:12;;8967:6;:22;;8959:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9094:14;;9084:6;9068:13;9078:2;9068:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9038:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9197:9;;:11;;;;;;;;;:::i;:::-;;;;;;8786:438;9250:13;;;;;;;;;;;9244:19;;:2;:19;;;:44;;;;;9283:4;9267:21;;:4;:21;;;;9244:44;9240:667;;;9321:235;9552:3;9321:204;4773:2;9381:9;;:28;9380:122;;4668:2;9380:122;;;9442:13;;9380:122;9321:6;:32;;:204;;;;:::i;:::-;:230;;:235;;;;:::i;:::-;9309:247;;9240:667;;;9590:13;;;;;;;;;;;9582:21;;:4;:21;;;:44;;;;;9621:4;9607:19;;:2;:19;;;;9582:44;9578:329;;;9659:232;9887:3;9659:201;4720:2;9719:9;;:27;9718:119;;4616:2;9718:119;;;9779:12;;9718:119;9659:6;:32;;:201;;;;:::i;:::-;:227;;:232;;;;:::i;:::-;9647:244;;9578:329;9240:667;9936:9;9923;;:22;;;;;;;:::i;:::-;;;;;;;;9960:28;9991:24;10009:4;9991:9;:24::i;:::-;9960:55;;10053:6;;;;;;;;;;;10052:7;:47;;;;;10086:13;;;;;;;;;;;10080:19;;:2;:19;;;10052:47;:79;;;;;10120:11;;;;;;;;;;;10052:79;:140;;;;;5137:2;5331;:13;;;;:::i;:::-;5323:5;:21;;;;:::i;:::-;10152:20;:40;10052:140;:191;;;;;4828:2;10213:9;;:30;10052:191;:237;;;;;5137:2;5259;:13;;;;:::i;:::-;5252:4;:20;;;;:::i;:::-;10264:9;;:25;10052:237;10030:739;;;10324:14;10365:11;;10342:20;:34;10341:115;;10436:20;10341:115;;;10401:11;;10341:115;10324:132;;10475:53;10502:6;10493;:15;10492:35;;10521:6;10492:35;;;10512:6;10492:35;10475:16;:53::i;:::-;10547:26;10576:21;10547:50;;10641:1;10620:18;:22;10616:106;;;10667:35;10680:21;10667:12;:35::i;:::-;10616:106;10752:1;10740:9;:13;;;;10305:464;;10030:739;8558:2222;8520:2260;10808:1;10796:9;:13;10792:172;;;10853:39;10882:9;10853;:24;10871:4;10853:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10826:9;:24;10844:4;10826:24;;;;;;;;;;;;;;;:66;;;;10935:4;10912:40;;10921:4;10912:40;;;10942:9;10912:40;;;;;;:::i;:::-;;;;;;;;10792:172;10992:27;11012:6;10992:9;:15;11002:4;10992:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10974:9;:15;10984:4;10974:15;;;;;;;;;;;;;;;:45;;;;11046:40;11064:21;11075:9;11064:6;:10;;:21;;;;:::i;:::-;11046:9;:13;11056:2;11046:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;11030:9;:13;11040:2;11030:13;;;;;;;;;;;;;;;:56;;;;11117:2;11102:41;;11111:4;11102:41;;;11121:21;11132:9;11121:6;:10;;:21;;;;:::i;:::-;11102:41;;;;;;:::i;:::-;;;;;;;;8269:2882;8166:2985;;;:::o;1716:224::-;1836:7;1869:1;1864;:6;;1872:12;1856:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1896:9;1912:1;1908;:5;;;;:::i;:::-;1896:17;;1931:1;1924:8;;;1716:224;;;;;:::o;1948:246::-;2006:7;2035:1;2030;:6;2026:47;;2060:1;2053:8;;;;2026:47;2083:9;2099:1;2095;:5;;;;:::i;:::-;2083:17;;2128:1;2123;2119;:5;;;;:::i;:::-;:10;2111:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2185:1;2178:8;;;1948:246;;;;;:::o;1572:136::-;1630:7;1657:43;1661:1;1664;1657:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1650:50;;1572:136;;;;:::o;2342:223::-;2462:7;2494:1;2490;:5;2497:12;2482:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2521:9;2537:1;2533;:5;;;;:::i;:::-;2521:17;;2556:1;2549:8;;;2342:223;;;;;:::o;11259:483::-;5855:4;5846:6;;:13;;;;;;;;;;;;;;;;;;11337:21:::1;11375:1;11361:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11337:40;;11406:4;11388;11393:1;11388:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11432:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11422:4;11427:1;11422:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11465:62;11482:4;11497:15;;;;;;;;;;;11515:11;11465:8;:62::i;:::-;11538:15;;;;;;;;;;;:66;;;11619:11;11645:1;11661:4;11688;11708:15;11538:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11326:416;5891:5:::0;5882:6;;:14;;;;;;;;;;;;;;;;;;11259:483;:::o;11159:92::-;11216:10;;;;;;;;;;;:19;;:27;11236:6;11216:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11159:92;:::o;1385:179::-;1443:7;1463:9;1479:1;1475;:5;;;;:::i;:::-;1463:17;;1504:1;1499;:6;;1491:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1555:1;1548:8;;;1385:179;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:474::-;3866:6;3874;3923:2;3911:9;3902:7;3898:23;3894:32;3891:119;;;3929:79;;:::i;:::-;3891:119;4049:1;4074:53;4119:7;4110:6;4099:9;4095:22;4074:53;:::i;:::-;4064:63;;4020:117;4176:2;4202:53;4247:7;4238:6;4227:9;4223:22;4202:53;:::i;:::-;4192:63;;4147:118;3798:474;;;;;:::o;4278:619::-;4355:6;4363;4371;4420:2;4408:9;4399:7;4395:23;4391:32;4388:119;;;4426:79;;:::i;:::-;4388:119;4546:1;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4517:117;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4278:619;;;;;:::o;4903:86::-;4938:7;4978:4;4971:5;4967:16;4956:27;;4903:86;;;:::o;4995:112::-;5078:22;5094:5;5078:22;:::i;:::-;5073:3;5066:35;4995:112;;:::o;5113:214::-;5202:4;5240:2;5229:9;5225:18;5217:26;;5253:67;5317:1;5306:9;5302:17;5293:6;5253:67;:::i;:::-;5113:214;;;;:::o;5333:329::-;5392:6;5441:2;5429:9;5420:7;5416:23;5412:32;5409:119;;;5447:79;;:::i;:::-;5409:119;5567:1;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5538:117;5333:329;;;;:::o;5668:::-;5727:6;5776:2;5764:9;5755:7;5751:23;5747:32;5744:119;;;5782:79;;:::i;:::-;5744:119;5902:1;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5873:117;5668:329;;;;:::o;6003:118::-;6090:24;6108:5;6090:24;:::i;:::-;6085:3;6078:37;6003:118;;:::o;6127:222::-;6220:4;6258:2;6247:9;6243:18;6235:26;;6271:71;6339:1;6328:9;6324:17;6315:6;6271:71;:::i;:::-;6127:222;;;;:::o;6355:474::-;6423:6;6431;6480:2;6468:9;6459:7;6455:23;6451:32;6448:119;;;6486:79;;:::i;:::-;6448:119;6606:1;6631:53;6676:7;6667:6;6656:9;6652:22;6631:53;:::i;:::-;6621:63;;6577:117;6733:2;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6704:118;6355:474;;;;;:::o;6835:180::-;6883:77;6880:1;6873:88;6980:4;6977:1;6970:15;7004:4;7001:1;6994:15;7021:102;7063:8;7110:5;7107:1;7103:13;7082:34;;7021:102;;;:::o;7129:848::-;7190:5;7197:4;7221:6;7212:15;;7245:5;7236:14;;7259:712;7280:1;7270:8;7267:15;7259:712;;;7375:4;7370:3;7366:14;7360:4;7357:24;7354:50;;;7384:18;;:::i;:::-;7354:50;7434:1;7424:8;7420:16;7417:451;;;7849:4;7842:5;7838:16;7829:25;;7417:451;7899:4;7893;7889:15;7881:23;;7929:32;7952:8;7929:32;:::i;:::-;7917:44;;7259:712;;;7129:848;;;;;;;:::o;7983:1073::-;8037:5;8228:8;8218:40;;8249:1;8240:10;;8251:5;;8218:40;8277:4;8267:36;;8294:1;8285:10;;8296:5;;8267:36;8363:4;8411:1;8406:27;;;;8447:1;8442:191;;;;8356:277;;8406:27;8424:1;8415:10;;8426:5;;;8442:191;8487:3;8477:8;8474:17;8471:43;;;8494:18;;:::i;:::-;8471:43;8543:8;8540:1;8536:16;8527:25;;8578:3;8571:5;8568:14;8565:40;;;8585:18;;:::i;:::-;8565:40;8618:5;;;8356:277;;8742:2;8732:8;8729:16;8723:3;8717:4;8714:13;8710:36;8692:2;8682:8;8679:16;8674:2;8668:4;8665:12;8661:35;8645:111;8642:246;;;8798:8;8792:4;8788:19;8779:28;;8833:3;8826:5;8823:14;8820:40;;;8840:18;;:::i;:::-;8820:40;8873:5;;8642:246;8913:42;8951:3;8941:8;8935:4;8932:1;8913:42;:::i;:::-;8898:57;;;;8987:4;8982:3;8978:14;8971:5;8968:25;8965:51;;;8996:18;;:::i;:::-;8965:51;9045:4;9038:5;9034:16;9025:25;;7983:1073;;;;;;:::o;9062:281::-;9120:5;9144:23;9162:4;9144:23;:::i;:::-;9136:31;;9188:25;9204:8;9188:25;:::i;:::-;9176:37;;9232:104;9269:66;9259:8;9253:4;9232:104;:::i;:::-;9223:113;;9062:281;;;;:::o;9349:410::-;9389:7;9412:20;9430:1;9412:20;:::i;:::-;9407:25;;9446:20;9464:1;9446:20;:::i;:::-;9441:25;;9501:1;9498;9494:9;9523:30;9541:11;9523:30;:::i;:::-;9512:41;;9702:1;9693:7;9689:15;9686:1;9683:22;9663:1;9656:9;9636:83;9613:139;;9732:18;;:::i;:::-;9613:139;9397:362;9349:410;;;;:::o;9765:182::-;9905:34;9901:1;9893:6;9889:14;9882:58;9765:182;:::o;9953:366::-;10095:3;10116:67;10180:2;10175:3;10116:67;:::i;:::-;10109:74;;10192:93;10281:3;10192:93;:::i;:::-;10310:2;10305:3;10301:12;10294:19;;9953:366;;;:::o;10325:419::-;10491:4;10529:2;10518:9;10514:18;10506:26;;10578:9;10572:4;10568:20;10564:1;10553:9;10549:17;10542:47;10606:131;10732:4;10606:131;:::i;:::-;10598:139;;10325:419;;;:::o;10750:163::-;10890:15;10886:1;10878:6;10874:14;10867:39;10750:163;:::o;10919:366::-;11061:3;11082:67;11146:2;11141:3;11082:67;:::i;:::-;11075:74;;11158:93;11247:3;11158:93;:::i;:::-;11276:2;11271:3;11267:12;11260:19;;10919:366;;;:::o;11291:419::-;11457:4;11495:2;11484:9;11480:18;11472:26;;11544:9;11538:4;11534:20;11530:1;11519:9;11515:17;11508:47;11572:131;11698:4;11572:131;:::i;:::-;11564:139;;11291:419;;;:::o;11716:430::-;11859:4;11897:2;11886:9;11882:18;11874:26;;11910:71;11978:1;11967:9;11963:17;11954:6;11910:71;:::i;:::-;11991:72;12059:2;12048:9;12044:18;12035:6;11991:72;:::i;:::-;12073:66;12135:2;12124:9;12120:18;12111:6;12073:66;:::i;:::-;11716:430;;;;;;:::o;12152:169::-;12292:21;12288:1;12280:6;12276:14;12269:45;12152:169;:::o;12327:366::-;12469:3;12490:67;12554:2;12549:3;12490:67;:::i;:::-;12483:74;;12566:93;12655:3;12566:93;:::i;:::-;12684:2;12679:3;12675:12;12668:19;;12327:366;;;:::o;12699:419::-;12865:4;12903:2;12892:9;12888:18;12880:26;;12952:9;12946:4;12942:20;12938:1;12927:9;12923:17;12916:47;12980:131;13106:4;12980:131;:::i;:::-;12972:139;;12699:419;;;:::o;13124:143::-;13181:5;13212:6;13206:13;13197:22;;13228:33;13255:5;13228:33;:::i;:::-;13124:143;;;;:::o;13273:351::-;13343:6;13392:2;13380:9;13371:7;13367:23;13363:32;13360:119;;;13398:79;;:::i;:::-;13360:119;13518:1;13543:64;13599:7;13590:6;13579:9;13575:22;13543:64;:::i;:::-;13533:74;;13489:128;13273:351;;;;:::o;13630:332::-;13751:4;13789:2;13778:9;13774:18;13766:26;;13802:71;13870:1;13859:9;13855:17;13846:6;13802:71;:::i;:::-;13883:72;13951:2;13940:9;13936:18;13927:6;13883:72;:::i;:::-;13630:332;;;;;:::o;13968:85::-;14013:7;14042:5;14031:16;;13968:85;;;:::o;14059:60::-;14087:3;14108:5;14101:12;;14059:60;;;:::o;14125:158::-;14183:9;14216:61;14234:42;14243:32;14269:5;14243:32;:::i;:::-;14234:42;:::i;:::-;14216:61;:::i;:::-;14203:74;;14125:158;;;:::o;14289:147::-;14384:45;14423:5;14384:45;:::i;:::-;14379:3;14372:58;14289:147;;:::o;14442:807::-;14691:4;14729:3;14718:9;14714:19;14706:27;;14743:71;14811:1;14800:9;14796:17;14787:6;14743:71;:::i;:::-;14824:72;14892:2;14881:9;14877:18;14868:6;14824:72;:::i;:::-;14906:80;14982:2;14971:9;14967:18;14958:6;14906:80;:::i;:::-;14996;15072:2;15061:9;15057:18;15048:6;14996:80;:::i;:::-;15086:73;15154:3;15143:9;15139:19;15130:6;15086:73;:::i;:::-;15169;15237:3;15226:9;15222:19;15213:6;15169:73;:::i;:::-;14442:807;;;;;;;;;:::o;15255:143::-;15312:5;15343:6;15337:13;15328:22;;15359:33;15386:5;15359:33;:::i;:::-;15255:143;;;;:::o;15404:663::-;15492:6;15500;15508;15557:2;15545:9;15536:7;15532:23;15528:32;15525:119;;;15563:79;;:::i;:::-;15525:119;15683:1;15708:64;15764:7;15755:6;15744:9;15740:22;15708:64;:::i;:::-;15698:74;;15654:128;15821:2;15847:64;15903:7;15894:6;15883:9;15879:22;15847:64;:::i;:::-;15837:74;;15792:129;15960:2;15986:64;16042:7;16033:6;16022:9;16018:22;15986:64;:::i;:::-;15976:74;;15931:129;15404:663;;;;;:::o;16073:332::-;16194:4;16232:2;16221:9;16217:18;16209:26;;16245:71;16313:1;16302:9;16298:17;16289:6;16245:71;:::i;:::-;16326:72;16394:2;16383:9;16379:18;16370:6;16326:72;:::i;:::-;16073:332;;;;;:::o;16411:116::-;16481:21;16496:5;16481:21;:::i;:::-;16474:5;16471:32;16461:60;;16517:1;16514;16507:12;16461:60;16411:116;:::o;16533:137::-;16587:5;16618:6;16612:13;16603:22;;16634:30;16658:5;16634:30;:::i;:::-;16533:137;;;;:::o;16676:345::-;16743:6;16792:2;16780:9;16771:7;16767:23;16763:32;16760:119;;;16798:79;;:::i;:::-;16760:119;16918:1;16943:61;16996:7;16987:6;16976:9;16972:22;16943:61;:::i;:::-;16933:71;;16889:125;16676:345;;;;:::o;17027:170::-;17167:22;17163:1;17155:6;17151:14;17144:46;17027:170;:::o;17203:366::-;17345:3;17366:67;17430:2;17425:3;17366:67;:::i;:::-;17359:74;;17442:93;17531:3;17442:93;:::i;:::-;17560:2;17555:3;17551:12;17544:19;;17203:366;;;:::o;17575:419::-;17741:4;17779:2;17768:9;17764:18;17756:26;;17828:9;17822:4;17818:20;17814:1;17803:9;17799:17;17792:47;17856:131;17982:4;17856:131;:::i;:::-;17848:139;;17575:419;;;:::o;18000:308::-;18109:4;18147:2;18136:9;18132:18;18124:26;;18160:65;18222:1;18211:9;18207:17;18198:6;18160:65;:::i;:::-;18235:66;18297:2;18286:9;18282:18;18273:6;18235:66;:::i;:::-;18000:308;;;;;:::o;18314:181::-;18454:33;18450:1;18442:6;18438:14;18431:57;18314:181;:::o;18501:366::-;18643:3;18664:67;18728:2;18723:3;18664:67;:::i;:::-;18657:74;;18740:93;18829:3;18740:93;:::i;:::-;18858:2;18853:3;18849:12;18842:19;;18501:366;;;:::o;18873:419::-;19039:4;19077:2;19066:9;19062:18;19054:26;;19126:9;19120:4;19116:20;19112:1;19101:9;19097:17;19090:47;19154:131;19280:4;19154:131;:::i;:::-;19146:139;;18873:419;;;:::o;19298:182::-;19438:34;19434:1;19426:6;19422:14;19415:58;19298:182;:::o;19486:366::-;19628:3;19649:67;19713:2;19708:3;19649:67;:::i;:::-;19642:74;;19725:93;19814:3;19725:93;:::i;:::-;19843:2;19838:3;19834:12;19827:19;;19486:366;;;:::o;19858:419::-;20024:4;20062:2;20051:9;20047:18;20039:26;;20111:9;20105:4;20101:20;20097:1;20086:9;20082:17;20075:47;20139:131;20265:4;20139:131;:::i;:::-;20131:139;;19858:419;;;:::o;20283:228::-;20423:34;20419:1;20411:6;20407:14;20400:58;20492:11;20487:2;20479:6;20475:15;20468:36;20283:228;:::o;20517:366::-;20659:3;20680:67;20744:2;20739:3;20680:67;:::i;:::-;20673:74;;20756:93;20845:3;20756:93;:::i;:::-;20874:2;20869:3;20865:12;20858:19;;20517:366;;;:::o;20889:419::-;21055:4;21093:2;21082:9;21078:18;21070:26;;21142:9;21136:4;21132:20;21128:1;21117:9;21113:17;21106:47;21170:131;21296:4;21170:131;:::i;:::-;21162:139;;20889:419;;;:::o;21314:170::-;21454:22;21450:1;21442:6;21438:14;21431:46;21314:170;:::o;21490:366::-;21632:3;21653:67;21717:2;21712:3;21653:67;:::i;:::-;21646:74;;21729:93;21818:3;21729:93;:::i;:::-;21847:2;21842:3;21838:12;21831:19;;21490:366;;;:::o;21862:419::-;22028:4;22066:2;22055:9;22051:18;22043:26;;22115:9;22109:4;22105:20;22101:1;22090:9;22086:17;22079:47;22143:131;22269:4;22143:131;:::i;:::-;22135:139;;21862:419;;;:::o;22287:175::-;22427:27;22423:1;22415:6;22411:14;22404:51;22287:175;:::o;22468:366::-;22610:3;22631:67;22695:2;22690:3;22631:67;:::i;:::-;22624:74;;22707:93;22796:3;22707:93;:::i;:::-;22825:2;22820:3;22816:12;22809:19;;22468:366;;;:::o;22840:419::-;23006:4;23044:2;23033:9;23029:18;23021:26;;23093:9;23087:4;23083:20;23079:1;23068:9;23064:17;23057:47;23121:131;23247:4;23121:131;:::i;:::-;23113:139;;22840:419;;;:::o;23265:191::-;23305:3;23324:20;23342:1;23324:20;:::i;:::-;23319:25;;23358:20;23376:1;23358:20;:::i;:::-;23353:25;;23401:1;23398;23394:9;23387:16;;23422:3;23419:1;23416:10;23413:36;;;23429:18;;:::i;:::-;23413:36;23265:191;;;;:::o;23462:176::-;23602:28;23598:1;23590:6;23586:14;23579:52;23462:176;:::o;23644:366::-;23786:3;23807:67;23871:2;23866:3;23807:67;:::i;:::-;23800:74;;23883:93;23972:3;23883:93;:::i;:::-;24001:2;23996:3;23992:12;23985:19;;23644:366;;;:::o;24016:419::-;24182:4;24220:2;24209:9;24205:18;24197:26;;24269:9;24263:4;24259:20;24255:1;24244:9;24240:17;24233:47;24297:131;24423:4;24297:131;:::i;:::-;24289:139;;24016:419;;;:::o;24441:233::-;24480:3;24503:24;24521:5;24503:24;:::i;:::-;24494:33;;24549:66;24542:5;24539:77;24536:103;;24619:18;;:::i;:::-;24536:103;24666:1;24659:5;24655:13;24648:20;;24441:233;;;:::o;24680:194::-;24720:4;24740:20;24758:1;24740:20;:::i;:::-;24735:25;;24774:20;24792:1;24774:20;:::i;:::-;24769:25;;24818:1;24815;24811:9;24803:17;;24842:1;24836:4;24833:11;24830:37;;;24847:18;;:::i;:::-;24830:37;24680:194;;;;:::o;24880:180::-;24928:77;24925:1;24918:88;25025:4;25022:1;25015:15;25049:4;25046:1;25039:15;25066:185;25106:1;25123:20;25141:1;25123:20;:::i;:::-;25118:25;;25157:20;25175:1;25157:20;:::i;:::-;25152:25;;25196:1;25186:35;;25201:18;;:::i;:::-;25186:35;25243:1;25240;25236:9;25231:14;;25066:185;;;;:::o;25257:220::-;25397:34;25393:1;25385:6;25381:14;25374:58;25466:3;25461:2;25453:6;25449:15;25442:28;25257:220;:::o;25483:366::-;25625:3;25646:67;25710:2;25705:3;25646:67;:::i;:::-;25639:74;;25722:93;25811:3;25722:93;:::i;:::-;25840:2;25835:3;25831:12;25824:19;;25483:366;;;:::o;25855:419::-;26021:4;26059:2;26048:9;26044:18;26036:26;;26108:9;26102:4;26098:20;26094:1;26083:9;26079:17;26072:47;26136:131;26262:4;26136:131;:::i;:::-;26128:139;;25855:419;;;:::o;26280:180::-;26328:77;26325:1;26318:88;26425:4;26422:1;26415:15;26449:4;26446:1;26439:15;26466:180;26514:77;26511:1;26504:88;26611:4;26608:1;26601:15;26635:4;26632:1;26625:15;26652:114;26719:6;26753:5;26747:12;26737:22;;26652:114;;;:::o;26772:184::-;26871:11;26905:6;26900:3;26893:19;26945:4;26940:3;26936:14;26921:29;;26772:184;;;;:::o;26962:132::-;27029:4;27052:3;27044:11;;27082:4;27077:3;27073:14;27065:22;;26962:132;;;:::o;27100:108::-;27177:24;27195:5;27177:24;:::i;:::-;27172:3;27165:37;27100:108;;:::o;27214:179::-;27283:10;27304:46;27346:3;27338:6;27304:46;:::i;:::-;27382:4;27377:3;27373:14;27359:28;;27214:179;;;;:::o;27399:113::-;27469:4;27501;27496:3;27492:14;27484:22;;27399:113;;;:::o;27548:732::-;27667:3;27696:54;27744:5;27696:54;:::i;:::-;27766:86;27845:6;27840:3;27766:86;:::i;:::-;27759:93;;27876:56;27926:5;27876:56;:::i;:::-;27955:7;27986:1;27971:284;27996:6;27993:1;27990:13;27971:284;;;28072:6;28066:13;28099:63;28158:3;28143:13;28099:63;:::i;:::-;28092:70;;28185:60;28238:6;28185:60;:::i;:::-;28175:70;;28031:224;28018:1;28015;28011:9;28006:14;;27971:284;;;27975:14;28271:3;28264:10;;27672:608;;;27548:732;;;;:::o;28286:831::-;28549:4;28587:3;28576:9;28572:19;28564:27;;28601:71;28669:1;28658:9;28654:17;28645:6;28601:71;:::i;:::-;28682:80;28758:2;28747:9;28743:18;28734:6;28682:80;:::i;:::-;28809:9;28803:4;28799:20;28794:2;28783:9;28779:18;28772:48;28837:108;28940:4;28931:6;28837:108;:::i;:::-;28829:116;;28955:72;29023:2;29012:9;29008:18;28999:6;28955:72;:::i;:::-;29037:73;29105:3;29094:9;29090:19;29081:6;29037:73;:::i;:::-;28286:831;;;;;;;;:::o;29123:177::-;29263:29;29259:1;29251:6;29247:14;29240:53;29123:177;:::o;29306:366::-;29448:3;29469:67;29533:2;29528:3;29469:67;:::i;:::-;29462:74;;29545:93;29634:3;29545:93;:::i;:::-;29663:2;29658:3;29654:12;29647:19;;29306:366;;;:::o;29678:419::-;29844:4;29882:2;29871:9;29867:18;29859:26;;29931:9;29925:4;29921:20;29917:1;29906:9;29902:17;29895:47;29959:131;30085:4;29959:131;:::i;:::-;29951:139;;29678:419;;;:::o

Swarm Source

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