ETH Price: $2,647.36 (+1.56%)

Token

Solanext AI (SAI)
 

Overview

Max Total Supply

100,000,000 SAI

Holders

84

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
528,932.910226274033760511 SAI

Value
$0.00
0x88F2E09198Ac6273Cab4d51f4a37f89A2f966906
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Solanext_AI

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*
Telegram : https://t.me/solanext
Website  : https://solanext.com/
Twitter  : https://twitter.com/Solanext_
*/

pragma solidity 0.8.23;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

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

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool private transferDelayEnabled = false;
    address payable private _taxWallet;

    // Taxes
    uint256 public  _buyTax = 18;
    uint256 public  _sellTax = 18;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = "Solanext AI";
    string private constant _symbol = "SAI";
    uint256 public _maxTxSize = _tTotal * 10 / 1000;
    uint256 public _maxWalletSize = _tTotal * 10 / 1000;
    uint256 public _taxSwapThreshold= _tTotal * 2 / 1000;

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

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

    event TaxSwapThresholdUpdated(uint256 taxSwapThreshold);

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

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

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

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

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

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

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

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

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

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

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

    function clearstuckETH(uint256 ethAmount) external onlyOwner {
        uint256 ethBalance = address(this).balance;
        if (ethBalance > ethAmount) {
            payable(_msgSender()).transfer(ethAmount);
        }
    }

    function clearstuckToken(address tokenAddress, uint256 tokenAmount) external onlyOwner returns (bool) {
        uint256 tokenBalance = IERC20(tokenAddress).balanceOf(address(this));
        if (tokenBalance > tokenAmount) {
            IERC20(tokenAddress).transfer(_taxWallet, tokenAmount);
        }
        return true;
    }

    function changeTaxSwapThreshold(uint256 percent) external onlyOwner {
        require(percent <= 1000, "changeTaxSwapThreshold: Percentage should be less than or equal to 1000");
        _taxSwapThreshold = _tTotal * percent / 1000;
        emit TaxSwapThresholdUpdated(_taxSwapThreshold);
    }

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

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

        uint256 taxAmount = 0;

        if (from != owner() && to != owner()) {
            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                    require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed.");
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                taxAmount = amount.mul(_buyTax).div(100);
                require(amount <= _maxTxSize, "Exceeds the _maxTxSize.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount.mul(_sellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold) {
                if(amount >= _taxSwapThreshold) {
                    swapTokensForEth(_taxSwapThreshold);
                } else {
                    swapTokensForEth(amount);
                }
            }
        }

        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 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(_taxWallet),
            block.timestamp
        );
    }

    function setBuyTaxSAI(uint256 tax) external onlyOwner {
        require(tax <= 45, "Tax should be less than or equal to 45");
        _buyTax = tax;
    }

    function setSellTaxSAI(uint256 tax) external onlyOwner {
        require(tax <= 45, "Tax should be less than or equal to 45");
        _sellTax = tax;
    }
    
    function setMaxTxSAI(uint256 percent) external onlyOwner {
        _maxTxSize = _tTotal * percent / 1000;
    }

    function setMaxWalletSAI(uint256 percent) external onlyOwner {
        _maxWalletSize = _tTotal * percent / 1000;
    }

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

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"Trading is already open");
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
            );
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"taxWallet","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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"taxSwapThreshold","type":"uint256"}],"name":"TaxSwapThresholdUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxSize","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":"_sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"changeTaxSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ethAmount","type":"uint256"}],"name":"clearstuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"clearstuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualS","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":"tax","type":"uint256"}],"name":"setBuyTaxSAI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxTxSAI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxWalletSAI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"setSellTaxSAI","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"}]

60806040525f60055f6101000a81548160ff021916908315150217905550601260065560126007556103e8600a6012600a6200003c91906200063c565b6305f5e1006200004d91906200068c565b6200005991906200068c565b62000065919062000703565b6008556103e8600a6012600a6200007d91906200063c565b6305f5e1006200008e91906200068c565b6200009a91906200068c565b620000a6919062000703565b6009556103e860026012600a620000be91906200063c565b6305f5e100620000cf91906200068c565b620000db91906200068c565b620000e7919062000703565b600a555f600c60156101000a81548160ff0219169083151502179055505f600c60166101000a81548160ff0219169083151502179055503480156200012a575f80fd5b506040516200414c3803806200414c83398181016040528101906200015091906200079f565b5f620001616200047c60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6200024e91906200063c565b6305f5e1006200025f91906200068c565b60015f620002726200047c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002c46200048360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003ef6200047c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200044d91906200063c565b6305f5e1006200045e91906200068c565b6040516200046d9190620007e0565b60405180910390a350620007fb565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000534578086048111156200050c576200050b620004aa565b5b60018516156200051c5780820291505b80810290506200052c85620004d7565b9450620004ec565b94509492505050565b5f826200054e576001905062000620565b816200055d575f905062000620565b81600181146200057657600281146200058157620005b7565b600191505062000620565b60ff841115620005965762000595620004aa565b5b8360020a915084821115620005b057620005af620004aa565b5b5062000620565b5060208310610133831016604e8410600b8410161715620005f15782820a905083811115620005eb57620005ea620004aa565b5b62000620565b620006008484846001620004e3565b925090508184048111156200061a5762000619620004aa565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006488262000627565b9150620006558362000630565b9250620006847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200053d565b905092915050565b5f620006988262000627565b9150620006a58362000627565b9250828202620006b58162000627565b91508282048414831517620006cf57620006ce620004aa565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200070f8262000627565b91506200071c8362000627565b9250826200072f576200072e620006d6565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000769826200073e565b9050919050565b6200077b816200075d565b811462000786575f80fd5b50565b5f81519050620007998162000770565b92915050565b5f60208284031215620007b757620007b66200073a565b5b5f620007c68482850162000789565b91505092915050565b620007da8162000627565b82525050565b5f602082019050620007f55f830184620007cf565b92915050565b61394380620008095f395ff3fe608060405260043610610184575f3560e01c806389d73132116100d0578063a9c706f211610089578063c9567bf911610063578063c9567bf91461053f578063ca9ec19914610555578063dd62ed3e1461057f578063fee85fd4146105bb5761018b565b8063a9c706f2146104c5578063aaf6741e146104ed578063bf474bed146105155761018b565b806389d73132146103a75780638da5cb5b146103e35780638f9a55c01461040d57806395d89b4114610437578063a8346b9b14610461578063a9059cbb146104895761018b565b8063511b5f611161013d578063715018a611610117578063715018a61461033d578063751039fc146103535780637d7ab9a3146103695780637efd4be71461037f5761018b565b8063511b5f61146102af578063625d1618146102d957806370a08231146103015761018b565b806306fdde031461018f578063095ea7b3146101b957806318160ddd146101f557806323b872dd1461021f578063313ce5671461025b57806342a11095146102855761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a36105e3565b6040516101b0919061286b565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da919061291c565b610620565b6040516101ec9190612974565b60405180910390f35b348015610200575f80fd5b5061020961063d565b604051610216919061299c565b60405180910390f35b34801561022a575f80fd5b50610245600480360381019061024091906129b5565b610660565b6040516102529190612974565b60405180910390f35b348015610266575f80fd5b5061026f610734565b60405161027c9190612a20565b60405180910390f35b348015610290575f80fd5b5061029961073c565b6040516102a6919061299c565b60405180910390f35b3480156102ba575f80fd5b506102c3610742565b6040516102d0919061299c565b60405180910390f35b3480156102e4575f80fd5b506102ff60048036038101906102fa9190612a39565b610748565b005b34801561030c575f80fd5b5061032760048036038101906103229190612a64565b61081a565b604051610334919061299c565b60405180910390f35b348015610348575f80fd5b50610351610860565b005b34801561035e575f80fd5b506103676109ae565b005b348015610374575f80fd5b5061037d610af6565b005b34801561038a575f80fd5b506103a560048036038101906103a09190612a39565b610b7c565b005b3480156103b2575f80fd5b506103cd60048036038101906103c8919061291c565b610ccc565b6040516103da9190612974565b60405180910390f35b3480156103ee575f80fd5b506103f7610e8e565b6040516104049190612a9e565b60405180910390f35b348015610418575f80fd5b50610421610eb5565b60405161042e919061299c565b60405180910390f35b348015610442575f80fd5b5061044b610ebb565b604051610458919061286b565b60405180910390f35b34801561046c575f80fd5b5061048760048036038101906104829190612a39565b610ef8565b005b348015610494575f80fd5b506104af60048036038101906104aa919061291c565b610fda565b6040516104bc9190612974565b60405180910390f35b3480156104d0575f80fd5b506104eb60048036038101906104e69190612a39565b610ff7565b005b3480156104f8575f80fd5b50610513600480360381019061050e9190612a39565b6110e7565b005b348015610520575f80fd5b506105296111c9565b604051610536919061299c565b60405180910390f35b34801561054a575f80fd5b506105536111cf565b005b348015610560575f80fd5b506105696116f1565b604051610576919061299c565b60405180910390f35b34801561058a575f80fd5b506105a560048036038101906105a09190612ab7565b6116f7565b6040516105b2919061299c565b60405180910390f35b3480156105c6575f80fd5b506105e160048036038101906105dc9190612a39565b611779565b005b60606040518060400160405280600b81526020017f536f6c616e657874204149000000000000000000000000000000000000000000815250905090565b5f61063361062c61184b565b8484611852565b6001905092915050565b5f6012600a61064c9190612c51565b6305f5e10061065b9190612c9b565b905090565b5f61066c848484611a15565b6107298461067861184b565b610724856040518060600160405280602881526020016138e66028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106db61184b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232b9092919063ffffffff16565b611852565b600190509392505050565b5f6012905090565b60065481565b60085481565b61075061184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d390612d26565b60405180910390fd5b6103e8816012600a6107ee9190612c51565b6305f5e1006107fd9190612c9b565b6108079190612c9b565b6108119190612d71565b60098190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61086861184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108eb90612d26565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109b661184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3990612d26565b60405180910390fd5b6012600a610a509190612c51565b6305f5e100610a5f9190612c9b565b6008819055506012600a610a739190612c51565b6305f5e100610a829190612c9b565b6009819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610ad09190612c51565b6305f5e100610adf9190612c9b565b604051610aec919061299c565b60405180910390a1565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b3761184b565b73ffffffffffffffffffffffffffffffffffffffff1614610b56575f80fd5b5f610b603061081a565b90505f811115610b7457610b738161238d565b5b5f4790505050565b610b8461184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0790612d26565b60405180910390fd5b6103e8811115610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c90612e37565b60405180910390fd5b6103e8816012600a610c679190612c51565b6305f5e100610c769190612c9b565b610c809190612c9b565b610c8a9190612d71565b600a819055507f17189f2f6a412549aa02ac15113cc51505ce2d076c8cbda6fa1454fd7cfdadab600a54604051610cc1919061299c565b60405180910390a150565b5f610cd561184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5890612d26565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d9b9190612a9e565b602060405180830381865afa158015610db6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dda9190612e69565b905082811115610e83578373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401610e41929190612eef565b6020604051808303815f875af1158015610e5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e819190612f40565b505b600191505092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600381526020017f5341490000000000000000000000000000000000000000000000000000000000815250905090565b610f0061184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8390612d26565b60405180910390fd5b602d811115610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc790612fdb565b60405180910390fd5b8060068190555050565b5f610fed610fe661184b565b8484611a15565b6001905092915050565b610fff61184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461108b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108290612d26565b60405180910390fd5b5f479050818111156110e35761109f61184b565b73ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156110e1573d5f803e3d5ffd5b505b5050565b6110ef61184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117290612d26565b60405180910390fd5b602d8111156111bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b690612fdb565b60405180910390fd5b8060078190555050565b600a5481565b6111d761184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125a90612d26565b60405180910390fd5b600c60149054906101000a900460ff16156112b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112aa90613043565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061134f30600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a61133b9190612c51565b6305f5e10061134a9190612c9b565b611852565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113dd9190613075565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611463573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114879190613075565b6040518363ffffffff1660e01b81526004016114a49291906130a0565b6020604051808303815f875af11580156114c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114e49190613075565b600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061156b3061081a565b5f80611575610e8e565b426040518863ffffffff1660e01b815260040161159796959493929190613100565b60606040518083038185885af11580156115b3573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906115d8919061315f565b505050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016116789291906131af565b6020604051808303815f875af1158015611694573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116b89190612f40565b506001600c60166101000a81548160ff0219169083151502179055506001600c60146101000a81548160ff021916908315150217905550565b60075481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61178161184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461180d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180490612d26565b60405180910390fd5b6103e8816012600a61181f9190612c51565b6305f5e10061182e9190612c9b565b6118389190612c9b565b6118429190612d71565b60088190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b790613246565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361192e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611925906132d4565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a08919061299c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7a90613362565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae8906133f0565b60405180910390fd5b5f8111611b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2a9061347e565b60405180910390fd5b5f611b3c610e8e565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611baa5750611b7a610e8e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561207b5760055f9054906101000a900460ff1615611d3557600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c6d5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d34574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce890613532565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611dde5750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e31575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611efe57611e5e6064611e506006548561261a90919063ffffffff16565b61269190919063ffffffff16565b9050600854821115611ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9c9061359a565b60405180910390fd5b60095482611eb28561081a565b611ebc91906135b8565b1115611efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef490613635565b60405180910390fd5b5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f8657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611fb657611fb36064611fa56007548561261a90919063ffffffff16565b61269190919063ffffffff16565b90505b5f611fc03061081a565b9050600c60159054906101000a900460ff1615801561202b5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156120435750600c60169054906101000a900460ff165b80156120505750600a5481115b1561207957600a54831061206e57612069600a5461238d565b612078565b6120778361238d565b5b5b505b5f81111561217a576120d38160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126da90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612171919061299c565b60405180910390a35b6121ca8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461273790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061226d612221828461273790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126da90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612310848661273790919063ffffffff16565b60405161231d919061299c565b60405180910390a350505050565b5f838311158290612372576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612369919061286b565b60405180910390fd5b505f83856123809190613653565b9050809150509392505050565b6001600c60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156123c4576123c3613686565b5b6040519080825280602002602001820160405280156123f25781602001602082028036833780820191505090505b50905030815f81518110612409576124086136b3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124d19190613075565b816001815181106124e5576124e46136b3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061254b30600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611852565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f84600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016125cf959493929190613797565b5f604051808303815f87803b1580156125e6575f80fd5b505af11580156125f8573d5f803e3d5ffd5b50505050505f600c60156101000a81548160ff02191690831515021790555050565b5f80830361262a575f905061268b565b5f82846126379190612c9b565b90508284826126469190612d71565b14612686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267d9061385f565b60405180910390fd5b809150505b92915050565b5f6126d283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612780565b905092915050565b5f8082846126e891906135b8565b90508381101561272d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612724906138c7565b60405180910390fd5b8091505092915050565b5f61277883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061232b565b905092915050565b5f80831182906127c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127bd919061286b565b60405180910390fd5b505f83856127d49190612d71565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156128185780820151818401526020810190506127fd565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61283d826127e1565b61284781856127eb565b93506128578185602086016127fb565b61286081612823565b840191505092915050565b5f6020820190508181035f8301526128838184612833565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6128b88261288f565b9050919050565b6128c8816128ae565b81146128d2575f80fd5b50565b5f813590506128e3816128bf565b92915050565b5f819050919050565b6128fb816128e9565b8114612905575f80fd5b50565b5f81359050612916816128f2565b92915050565b5f80604083850312156129325761293161288b565b5b5f61293f858286016128d5565b925050602061295085828601612908565b9150509250929050565b5f8115159050919050565b61296e8161295a565b82525050565b5f6020820190506129875f830184612965565b92915050565b612996816128e9565b82525050565b5f6020820190506129af5f83018461298d565b92915050565b5f805f606084860312156129cc576129cb61288b565b5b5f6129d9868287016128d5565b93505060206129ea868287016128d5565b92505060406129fb86828701612908565b9150509250925092565b5f60ff82169050919050565b612a1a81612a05565b82525050565b5f602082019050612a335f830184612a11565b92915050565b5f60208284031215612a4e57612a4d61288b565b5b5f612a5b84828501612908565b91505092915050565b5f60208284031215612a7957612a7861288b565b5b5f612a86848285016128d5565b91505092915050565b612a98816128ae565b82525050565b5f602082019050612ab15f830184612a8f565b92915050565b5f8060408385031215612acd57612acc61288b565b5b5f612ada858286016128d5565b9250506020612aeb858286016128d5565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612b7757808604811115612b5357612b52612af5565b5b6001851615612b625780820291505b8081029050612b7085612b22565b9450612b37565b94509492505050565b5f82612b8f5760019050612c4a565b81612b9c575f9050612c4a565b8160018114612bb25760028114612bbc57612beb565b6001915050612c4a565b60ff841115612bce57612bcd612af5565b5b8360020a915084821115612be557612be4612af5565b5b50612c4a565b5060208310610133831016604e8410600b8410161715612c205782820a905083811115612c1b57612c1a612af5565b5b612c4a565b612c2d8484846001612b2e565b92509050818404811115612c4457612c43612af5565b5b81810290505b9392505050565b5f612c5b826128e9565b9150612c6683612a05565b9250612c937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b80565b905092915050565b5f612ca5826128e9565b9150612cb0836128e9565b9250828202612cbe816128e9565b91508282048414831517612cd557612cd4612af5565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612d106020836127eb565b9150612d1b82612cdc565b602082019050919050565b5f6020820190508181035f830152612d3d81612d04565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d7b826128e9565b9150612d86836128e9565b925082612d9657612d95612d44565b5b828204905092915050565b7f6368616e6765546178537761705468726573686f6c643a2050657263656e74615f8201527f67652073686f756c64206265206c657373207468616e206f7220657175616c2060208201527f746f203130303000000000000000000000000000000000000000000000000000604082015250565b5f612e216047836127eb565b9150612e2c82612da1565b606082019050919050565b5f6020820190508181035f830152612e4e81612e15565b9050919050565b5f81519050612e63816128f2565b92915050565b5f60208284031215612e7e57612e7d61288b565b5b5f612e8b84828501612e55565b91505092915050565b5f819050919050565b5f612eb7612eb2612ead8461288f565b612e94565b61288f565b9050919050565b5f612ec882612e9d565b9050919050565b5f612ed982612ebe565b9050919050565b612ee981612ecf565b82525050565b5f604082019050612f025f830185612ee0565b612f0f602083018461298d565b9392505050565b612f1f8161295a565b8114612f29575f80fd5b50565b5f81519050612f3a81612f16565b92915050565b5f60208284031215612f5557612f5461288b565b5b5f612f6284828501612f2c565b91505092915050565b7f5461782073686f756c64206265206c657373207468616e206f7220657175616c5f8201527f20746f2034350000000000000000000000000000000000000000000000000000602082015250565b5f612fc56026836127eb565b9150612fd082612f6b565b604082019050919050565b5f6020820190508181035f830152612ff281612fb9565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61302d6017836127eb565b915061303882612ff9565b602082019050919050565b5f6020820190508181035f83015261305a81613021565b9050919050565b5f8151905061306f816128bf565b92915050565b5f6020828403121561308a5761308961288b565b5b5f61309784828501613061565b91505092915050565b5f6040820190506130b35f830185612a8f565b6130c06020830184612a8f565b9392505050565b5f819050919050565b5f6130ea6130e56130e0846130c7565b612e94565b6128e9565b9050919050565b6130fa816130d0565b82525050565b5f60c0820190506131135f830189612a8f565b613120602083018861298d565b61312d60408301876130f1565b61313a60608301866130f1565b6131476080830185612a8f565b61315460a083018461298d565b979650505050505050565b5f805f606084860312156131765761317561288b565b5b5f61318386828701612e55565b935050602061319486828701612e55565b92505060406131a586828701612e55565b9150509250925092565b5f6040820190506131c25f830185612a8f565b6131cf602083018461298d565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6132306024836127eb565b915061323b826131d6565b604082019050919050565b5f6020820190508181035f83015261325d81613224565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132be6022836127eb565b91506132c982613264565b604082019050919050565b5f6020820190508181035f8301526132eb816132b2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61334c6025836127eb565b9150613357826132f2565b604082019050919050565b5f6020820190508181035f83015261337981613340565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6133da6023836127eb565b91506133e582613380565b604082019050919050565b5f6020820190508181035f830152613407816133ce565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6134686029836127eb565b91506134738261340e565b604082019050919050565b5f6020820190508181035f8301526134958161345c565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f61351c6049836127eb565b91506135278261349c565b606082019050919050565b5f6020820190508181035f83015261354981613510565b9050919050565b7f4578636565647320746865205f6d6178547853697a652e0000000000000000005f82015250565b5f6135846017836127eb565b915061358f82613550565b602082019050919050565b5f6020820190508181035f8301526135b181613578565b9050919050565b5f6135c2826128e9565b91506135cd836128e9565b92508282019050808211156135e5576135e4612af5565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61361f601a836127eb565b915061362a826135eb565b602082019050919050565b5f6020820190508181035f83015261364c81613613565b9050919050565b5f61365d826128e9565b9150613668836128e9565b92508282039050818111156136805761367f612af5565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613712816128ae565b82525050565b5f6137238383613709565b60208301905092915050565b5f602082019050919050565b5f613745826136e0565b61374f81856136ea565b935061375a836136fa565b805f5b8381101561378a5781516137718882613718565b975061377c8361372f565b92505060018101905061375d565b5085935050505092915050565b5f60a0820190506137aa5f83018861298d565b6137b760208301876130f1565b81810360408301526137c9818661373b565b90506137d86060830185612a8f565b6137e5608083018461298d565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138496021836127eb565b9150613854826137ef565b604082019050919050565b5f6020820190508181035f8301526138768161383d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6138b1601b836127eb565b91506138bc8261387d565b602082019050919050565b5f6020820190508181035f8301526138de816138a5565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b3badbfba1cc6084e7b60d6f6df869beef4c70783c5e1223cac97f7a169ae39f64736f6c634300081700330000000000000000000000008b0dfe427b3bd3ec06517d7c16169ff2ee676560

Deployed Bytecode

0x608060405260043610610184575f3560e01c806389d73132116100d0578063a9c706f211610089578063c9567bf911610063578063c9567bf91461053f578063ca9ec19914610555578063dd62ed3e1461057f578063fee85fd4146105bb5761018b565b8063a9c706f2146104c5578063aaf6741e146104ed578063bf474bed146105155761018b565b806389d73132146103a75780638da5cb5b146103e35780638f9a55c01461040d57806395d89b4114610437578063a8346b9b14610461578063a9059cbb146104895761018b565b8063511b5f611161013d578063715018a611610117578063715018a61461033d578063751039fc146103535780637d7ab9a3146103695780637efd4be71461037f5761018b565b8063511b5f61146102af578063625d1618146102d957806370a08231146103015761018b565b806306fdde031461018f578063095ea7b3146101b957806318160ddd146101f557806323b872dd1461021f578063313ce5671461025b57806342a11095146102855761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a36105e3565b6040516101b0919061286b565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da919061291c565b610620565b6040516101ec9190612974565b60405180910390f35b348015610200575f80fd5b5061020961063d565b604051610216919061299c565b60405180910390f35b34801561022a575f80fd5b50610245600480360381019061024091906129b5565b610660565b6040516102529190612974565b60405180910390f35b348015610266575f80fd5b5061026f610734565b60405161027c9190612a20565b60405180910390f35b348015610290575f80fd5b5061029961073c565b6040516102a6919061299c565b60405180910390f35b3480156102ba575f80fd5b506102c3610742565b6040516102d0919061299c565b60405180910390f35b3480156102e4575f80fd5b506102ff60048036038101906102fa9190612a39565b610748565b005b34801561030c575f80fd5b5061032760048036038101906103229190612a64565b61081a565b604051610334919061299c565b60405180910390f35b348015610348575f80fd5b50610351610860565b005b34801561035e575f80fd5b506103676109ae565b005b348015610374575f80fd5b5061037d610af6565b005b34801561038a575f80fd5b506103a560048036038101906103a09190612a39565b610b7c565b005b3480156103b2575f80fd5b506103cd60048036038101906103c8919061291c565b610ccc565b6040516103da9190612974565b60405180910390f35b3480156103ee575f80fd5b506103f7610e8e565b6040516104049190612a9e565b60405180910390f35b348015610418575f80fd5b50610421610eb5565b60405161042e919061299c565b60405180910390f35b348015610442575f80fd5b5061044b610ebb565b604051610458919061286b565b60405180910390f35b34801561046c575f80fd5b5061048760048036038101906104829190612a39565b610ef8565b005b348015610494575f80fd5b506104af60048036038101906104aa919061291c565b610fda565b6040516104bc9190612974565b60405180910390f35b3480156104d0575f80fd5b506104eb60048036038101906104e69190612a39565b610ff7565b005b3480156104f8575f80fd5b50610513600480360381019061050e9190612a39565b6110e7565b005b348015610520575f80fd5b506105296111c9565b604051610536919061299c565b60405180910390f35b34801561054a575f80fd5b506105536111cf565b005b348015610560575f80fd5b506105696116f1565b604051610576919061299c565b60405180910390f35b34801561058a575f80fd5b506105a560048036038101906105a09190612ab7565b6116f7565b6040516105b2919061299c565b60405180910390f35b3480156105c6575f80fd5b506105e160048036038101906105dc9190612a39565b611779565b005b60606040518060400160405280600b81526020017f536f6c616e657874204149000000000000000000000000000000000000000000815250905090565b5f61063361062c61184b565b8484611852565b6001905092915050565b5f6012600a61064c9190612c51565b6305f5e10061065b9190612c9b565b905090565b5f61066c848484611a15565b6107298461067861184b565b610724856040518060600160405280602881526020016138e66028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106db61184b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232b9092919063ffffffff16565b611852565b600190509392505050565b5f6012905090565b60065481565b60085481565b61075061184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d390612d26565b60405180910390fd5b6103e8816012600a6107ee9190612c51565b6305f5e1006107fd9190612c9b565b6108079190612c9b565b6108119190612d71565b60098190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61086861184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108eb90612d26565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109b661184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3990612d26565b60405180910390fd5b6012600a610a509190612c51565b6305f5e100610a5f9190612c9b565b6008819055506012600a610a739190612c51565b6305f5e100610a829190612c9b565b6009819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610ad09190612c51565b6305f5e100610adf9190612c9b565b604051610aec919061299c565b60405180910390a1565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b3761184b565b73ffffffffffffffffffffffffffffffffffffffff1614610b56575f80fd5b5f610b603061081a565b90505f811115610b7457610b738161238d565b5b5f4790505050565b610b8461184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0790612d26565b60405180910390fd5b6103e8811115610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c90612e37565b60405180910390fd5b6103e8816012600a610c679190612c51565b6305f5e100610c769190612c9b565b610c809190612c9b565b610c8a9190612d71565b600a819055507f17189f2f6a412549aa02ac15113cc51505ce2d076c8cbda6fa1454fd7cfdadab600a54604051610cc1919061299c565b60405180910390a150565b5f610cd561184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5890612d26565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d9b9190612a9e565b602060405180830381865afa158015610db6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dda9190612e69565b905082811115610e83578373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401610e41929190612eef565b6020604051808303815f875af1158015610e5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e819190612f40565b505b600191505092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600381526020017f5341490000000000000000000000000000000000000000000000000000000000815250905090565b610f0061184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8390612d26565b60405180910390fd5b602d811115610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc790612fdb565b60405180910390fd5b8060068190555050565b5f610fed610fe661184b565b8484611a15565b6001905092915050565b610fff61184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461108b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108290612d26565b60405180910390fd5b5f479050818111156110e35761109f61184b565b73ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156110e1573d5f803e3d5ffd5b505b5050565b6110ef61184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117290612d26565b60405180910390fd5b602d8111156111bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b690612fdb565b60405180910390fd5b8060078190555050565b600a5481565b6111d761184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125a90612d26565b60405180910390fd5b600c60149054906101000a900460ff16156112b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112aa90613043565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061134f30600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a61133b9190612c51565b6305f5e10061134a9190612c9b565b611852565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113dd9190613075565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611463573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114879190613075565b6040518363ffffffff1660e01b81526004016114a49291906130a0565b6020604051808303815f875af11580156114c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114e49190613075565b600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061156b3061081a565b5f80611575610e8e565b426040518863ffffffff1660e01b815260040161159796959493929190613100565b60606040518083038185885af11580156115b3573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906115d8919061315f565b505050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016116789291906131af565b6020604051808303815f875af1158015611694573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116b89190612f40565b506001600c60166101000a81548160ff0219169083151502179055506001600c60146101000a81548160ff021916908315150217905550565b60075481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61178161184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461180d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180490612d26565b60405180910390fd5b6103e8816012600a61181f9190612c51565b6305f5e10061182e9190612c9b565b6118389190612c9b565b6118429190612d71565b60088190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b790613246565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361192e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611925906132d4565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a08919061299c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7a90613362565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae8906133f0565b60405180910390fd5b5f8111611b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2a9061347e565b60405180910390fd5b5f611b3c610e8e565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611baa5750611b7a610e8e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561207b5760055f9054906101000a900460ff1615611d3557600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c6d5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d34574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce890613532565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611dde5750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e31575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611efe57611e5e6064611e506006548561261a90919063ffffffff16565b61269190919063ffffffff16565b9050600854821115611ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9c9061359a565b60405180910390fd5b60095482611eb28561081a565b611ebc91906135b8565b1115611efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef490613635565b60405180910390fd5b5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f8657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611fb657611fb36064611fa56007548561261a90919063ffffffff16565b61269190919063ffffffff16565b90505b5f611fc03061081a565b9050600c60159054906101000a900460ff1615801561202b5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156120435750600c60169054906101000a900460ff165b80156120505750600a5481115b1561207957600a54831061206e57612069600a5461238d565b612078565b6120778361238d565b5b5b505b5f81111561217a576120d38160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126da90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612171919061299c565b60405180910390a35b6121ca8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461273790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061226d612221828461273790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126da90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612310848661273790919063ffffffff16565b60405161231d919061299c565b60405180910390a350505050565b5f838311158290612372576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612369919061286b565b60405180910390fd5b505f83856123809190613653565b9050809150509392505050565b6001600c60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156123c4576123c3613686565b5b6040519080825280602002602001820160405280156123f25781602001602082028036833780820191505090505b50905030815f81518110612409576124086136b3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124d19190613075565b816001815181106124e5576124e46136b3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061254b30600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611852565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f84600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016125cf959493929190613797565b5f604051808303815f87803b1580156125e6575f80fd5b505af11580156125f8573d5f803e3d5ffd5b50505050505f600c60156101000a81548160ff02191690831515021790555050565b5f80830361262a575f905061268b565b5f82846126379190612c9b565b90508284826126469190612d71565b14612686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267d9061385f565b60405180910390fd5b809150505b92915050565b5f6126d283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612780565b905092915050565b5f8082846126e891906135b8565b90508381101561272d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612724906138c7565b60405180910390fd5b8091505092915050565b5f61277883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061232b565b905092915050565b5f80831182906127c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127bd919061286b565b60405180910390fd5b505f83856127d49190612d71565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156128185780820151818401526020810190506127fd565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61283d826127e1565b61284781856127eb565b93506128578185602086016127fb565b61286081612823565b840191505092915050565b5f6020820190508181035f8301526128838184612833565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6128b88261288f565b9050919050565b6128c8816128ae565b81146128d2575f80fd5b50565b5f813590506128e3816128bf565b92915050565b5f819050919050565b6128fb816128e9565b8114612905575f80fd5b50565b5f81359050612916816128f2565b92915050565b5f80604083850312156129325761293161288b565b5b5f61293f858286016128d5565b925050602061295085828601612908565b9150509250929050565b5f8115159050919050565b61296e8161295a565b82525050565b5f6020820190506129875f830184612965565b92915050565b612996816128e9565b82525050565b5f6020820190506129af5f83018461298d565b92915050565b5f805f606084860312156129cc576129cb61288b565b5b5f6129d9868287016128d5565b93505060206129ea868287016128d5565b92505060406129fb86828701612908565b9150509250925092565b5f60ff82169050919050565b612a1a81612a05565b82525050565b5f602082019050612a335f830184612a11565b92915050565b5f60208284031215612a4e57612a4d61288b565b5b5f612a5b84828501612908565b91505092915050565b5f60208284031215612a7957612a7861288b565b5b5f612a86848285016128d5565b91505092915050565b612a98816128ae565b82525050565b5f602082019050612ab15f830184612a8f565b92915050565b5f8060408385031215612acd57612acc61288b565b5b5f612ada858286016128d5565b9250506020612aeb858286016128d5565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612b7757808604811115612b5357612b52612af5565b5b6001851615612b625780820291505b8081029050612b7085612b22565b9450612b37565b94509492505050565b5f82612b8f5760019050612c4a565b81612b9c575f9050612c4a565b8160018114612bb25760028114612bbc57612beb565b6001915050612c4a565b60ff841115612bce57612bcd612af5565b5b8360020a915084821115612be557612be4612af5565b5b50612c4a565b5060208310610133831016604e8410600b8410161715612c205782820a905083811115612c1b57612c1a612af5565b5b612c4a565b612c2d8484846001612b2e565b92509050818404811115612c4457612c43612af5565b5b81810290505b9392505050565b5f612c5b826128e9565b9150612c6683612a05565b9250612c937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b80565b905092915050565b5f612ca5826128e9565b9150612cb0836128e9565b9250828202612cbe816128e9565b91508282048414831517612cd557612cd4612af5565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612d106020836127eb565b9150612d1b82612cdc565b602082019050919050565b5f6020820190508181035f830152612d3d81612d04565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d7b826128e9565b9150612d86836128e9565b925082612d9657612d95612d44565b5b828204905092915050565b7f6368616e6765546178537761705468726573686f6c643a2050657263656e74615f8201527f67652073686f756c64206265206c657373207468616e206f7220657175616c2060208201527f746f203130303000000000000000000000000000000000000000000000000000604082015250565b5f612e216047836127eb565b9150612e2c82612da1565b606082019050919050565b5f6020820190508181035f830152612e4e81612e15565b9050919050565b5f81519050612e63816128f2565b92915050565b5f60208284031215612e7e57612e7d61288b565b5b5f612e8b84828501612e55565b91505092915050565b5f819050919050565b5f612eb7612eb2612ead8461288f565b612e94565b61288f565b9050919050565b5f612ec882612e9d565b9050919050565b5f612ed982612ebe565b9050919050565b612ee981612ecf565b82525050565b5f604082019050612f025f830185612ee0565b612f0f602083018461298d565b9392505050565b612f1f8161295a565b8114612f29575f80fd5b50565b5f81519050612f3a81612f16565b92915050565b5f60208284031215612f5557612f5461288b565b5b5f612f6284828501612f2c565b91505092915050565b7f5461782073686f756c64206265206c657373207468616e206f7220657175616c5f8201527f20746f2034350000000000000000000000000000000000000000000000000000602082015250565b5f612fc56026836127eb565b9150612fd082612f6b565b604082019050919050565b5f6020820190508181035f830152612ff281612fb9565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61302d6017836127eb565b915061303882612ff9565b602082019050919050565b5f6020820190508181035f83015261305a81613021565b9050919050565b5f8151905061306f816128bf565b92915050565b5f6020828403121561308a5761308961288b565b5b5f61309784828501613061565b91505092915050565b5f6040820190506130b35f830185612a8f565b6130c06020830184612a8f565b9392505050565b5f819050919050565b5f6130ea6130e56130e0846130c7565b612e94565b6128e9565b9050919050565b6130fa816130d0565b82525050565b5f60c0820190506131135f830189612a8f565b613120602083018861298d565b61312d60408301876130f1565b61313a60608301866130f1565b6131476080830185612a8f565b61315460a083018461298d565b979650505050505050565b5f805f606084860312156131765761317561288b565b5b5f61318386828701612e55565b935050602061319486828701612e55565b92505060406131a586828701612e55565b9150509250925092565b5f6040820190506131c25f830185612a8f565b6131cf602083018461298d565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6132306024836127eb565b915061323b826131d6565b604082019050919050565b5f6020820190508181035f83015261325d81613224565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132be6022836127eb565b91506132c982613264565b604082019050919050565b5f6020820190508181035f8301526132eb816132b2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61334c6025836127eb565b9150613357826132f2565b604082019050919050565b5f6020820190508181035f83015261337981613340565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6133da6023836127eb565b91506133e582613380565b604082019050919050565b5f6020820190508181035f830152613407816133ce565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6134686029836127eb565b91506134738261340e565b604082019050919050565b5f6020820190508181035f8301526134958161345c565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f61351c6049836127eb565b91506135278261349c565b606082019050919050565b5f6020820190508181035f83015261354981613510565b9050919050565b7f4578636565647320746865205f6d6178547853697a652e0000000000000000005f82015250565b5f6135846017836127eb565b915061358f82613550565b602082019050919050565b5f6020820190508181035f8301526135b181613578565b9050919050565b5f6135c2826128e9565b91506135cd836128e9565b92508282019050808211156135e5576135e4612af5565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61361f601a836127eb565b915061362a826135eb565b602082019050919050565b5f6020820190508181035f83015261364c81613613565b9050919050565b5f61365d826128e9565b9150613668836128e9565b92508282039050818111156136805761367f612af5565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613712816128ae565b82525050565b5f6137238383613709565b60208301905092915050565b5f602082019050919050565b5f613745826136e0565b61374f81856136ea565b935061375a836136fa565b805f5b8381101561378a5781516137718882613718565b975061377c8361372f565b92505060018101905061375d565b5085935050505092915050565b5f60a0820190506137aa5f83018861298d565b6137b760208301876130f1565b81810360408301526137c9818661373b565b90506137d86060830185612a8f565b6137e5608083018461298d565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138496021836127eb565b9150613854826137ef565b604082019050919050565b5f6020820190508181035f8301526138768161383d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6138b1601b836127eb565b91506138bc8261387d565b602082019050919050565b5f6020820190508181035f8301526138de816138a5565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b3badbfba1cc6084e7b60d6f6df869beef4c70783c5e1223cac97f7a169ae39f64736f6c63430008170033

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

0000000000000000000000008b0dfe427b3bd3ec06517d7c16169ff2ee676560

-----Decoded View---------------
Arg [0] : taxWallet (address): 0x8b0dFe427B3Bd3ec06517d7c16169FF2ee676560

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008b0dfe427b3bd3ec06517d7c16169ff2ee676560


Deployed Bytecode Sourcemap

3593:8636:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5245:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6078:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5522:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6247:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5431:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4048:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4330:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10819:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5625:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2674:148;;;;;;;;;;;;;:::i;:::-;;10948:194;;;;;;;;;;;;;:::i;:::-;;11151:331;;;;;;;;;;;;;:::i;:::-;;7146:299;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6804:334;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2460:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4384:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5336:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10362:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5752:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6568:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10527:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4442:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11490:699;;;;;;;;;;;;;:::i;:::-;;4083:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5927:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10698:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5245:83;5282:13;5315:5;;;;;;;;;;;;;;;;;5308:12;;5245:83;:::o;6078:161::-;6153:4;6170:39;6179:12;:10;:12::i;:::-;6193:7;6202:6;6170:8;:39::i;:::-;6227:4;6220:11;;6078:161;;;;:::o;5522:95::-;5575:7;4156:2;4212;:13;;;;:::i;:::-;4200:9;:25;;;;:::i;:::-;5595:14;;5522:95;:::o;6247:313::-;6345:4;6362:36;6372:6;6380:9;6391:6;6362:9;:36::i;:::-;6409:121;6418:6;6426:12;:10;:12::i;:::-;6440:89;6478:6;6440:89;;;;;;;;;;;;;;;;;:11;:19;6452:6;6440:19;;;;;;;;;;;;;;;:33;6460:12;:10;:12::i;:::-;6440:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6409:8;:121::i;:::-;6548:4;6541:11;;6247:313;;;;;:::o;5431:83::-;5472:5;4156:2;5490:16;;5431:83;:::o;4048:28::-;;;;:::o;4330:47::-;;;;:::o;10819:121::-;2597:12;:10;:12::i;:::-;2587:22;;:6;;;;;;;;;;:22;;;2579:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10928:4:::1;10918:7;4156:2;4212;:13;;;;:::i;:::-;4200:9;:25;;;;:::i;:::-;10908:17;;;;:::i;:::-;:24;;;;:::i;:::-;10891:14;:41;;;;10819:121:::0;:::o;5625:119::-;5691:7;5718:9;:18;5728:7;5718:18;;;;;;;;;;;;;;;;5711:25;;5625:119;;;:::o;2674:148::-;2597:12;:10;:12::i;:::-;2587:22;;:6;;;;;;;;;;:22;;;2579:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2781:1:::1;2744:40;;2765:6;::::0;::::1;;;;;;;;2744:40;;;;;;;;;;;;2812:1;2795:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2674:148::o:0;10948:194::-;2597:12;:10;:12::i;:::-;2587:22;;:6;;;;;;;;;;:22;;;2579:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4156:2:::1;4212;:13;;;;:::i;:::-;4200:9;:25;;;;:::i;:::-;11001:10;:20;;;;4156:2;4212;:13;;;;:::i;:::-;4200:9;:25;;;;:::i;:::-;11032:14;:22;;;;11086:5;11065:20;;:26;;;;;;;;;;;;;;;;;;11107:27;4156:2;4212;:13;;;;:::i;:::-;4200:9;:25;;;;:::i;:::-;11107:27;;;;;;:::i;:::-;;;;;;;;10948:194::o:0;11151:331::-;11212:10;;;;;;;;;;;11198:24;;:12;:10;:12::i;:::-;:24;;;11190:33;;;;;;11234:20;11255:24;11273:4;11255:9;:24::i;:::-;11234:45;;11306:1;11293:12;:14;11290:73;;;11321:30;11338:12;11321:16;:30::i;:::-;11290:73;11373:18;11392:21;11373:40;;11179:303;;11151:331::o;7146:299::-;2597:12;:10;:12::i;:::-;2587:22;;:6;;;;;;;;;;:22;;;2579:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7244:4:::1;7233:7;:15;;7225:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;7375:4;7365:7;4156:2;4212;:13;;;;:::i;:::-;4200:9;:25;;;;:::i;:::-;7355:17;;;;:::i;:::-;:24;;;;:::i;:::-;7335:17;:44;;;;7395:42;7419:17;;7395:42;;;;;;:::i;:::-;;;;;;;;7146:299:::0;:::o;6804:334::-;6900:4;2597:12;:10;:12::i;:::-;2587:22;;:6;;;;;;;;;;:22;;;2579:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6917:20:::1;6947:12;6940:30;;;6979:4;6940:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6917:68;;7015:11;7000:12;:26;6996:113;;;7050:12;7043:29;;;7073:10;;;;;;;;;;;7085:11;7043:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6996:113;7126:4;7119:11;;;6804:334:::0;;;;:::o;2460:79::-;2498:7;2525:6;;;;;;;;;;;2518:13;;2460:79;:::o;4384:51::-;;;;:::o;5336:87::-;5375:13;5408:7;;;;;;;;;;;;;;;;;5401:14;;5336:87;:::o;10362:157::-;2597:12;:10;:12::i;:::-;2587:22;;:6;;;;;;;;;;:22;;;2579:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10442:2:::1;10435:3;:9;;10427:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10508:3;10498:7;:13;;;;10362:157:::0;:::o;5752:167::-;5830:4;5847:42;5857:12;:10;:12::i;:::-;5871:9;5882:6;5847:9;:42::i;:::-;5907:4;5900:11;;5752:167;;;;:::o;6568:228::-;2597:12;:10;:12::i;:::-;2587:22;;:6;;;;;;;;;;:22;;;2579:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6640:18:::1;6661:21;6640:42;;6710:9;6697:10;:22;6693:96;;;6744:12;:10;:12::i;:::-;6736:30;;:41;6767:9;6736:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;6693:96;6629:167;6568:228:::0;:::o;10527:159::-;2597:12;:10;:12::i;:::-;2587:22;;:6;;;;;;;;;;:22;;;2579:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10608:2:::1;10601:3;:9;;10593:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10675:3;10664:8;:14;;;;10527:159:::0;:::o;4442:52::-;;;;:::o;11490:699::-;2597:12;:10;:12::i;:::-;2587:22;;:6;;;;;;;;;;:22;;;2579:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11554:11:::1;;;;;;;;;;;11553:12;11545:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11654:42;11603:15;;:108;;;;;;;;;;;;;;;;;;11722:58;11739:4;11754:15;;;;;;;;;;;4156:2;4212;:13;;;;:::i;:::-;4200:9;:25;;;;:::i;:::-;11722:8;:58::i;:::-;11825:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11807:55;;;11871:4;11878:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11807:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11791:13;;:110;;;;;;;;;;;;;;;;;;11912:15;;;;;;;;;;;:31;;;11951:21;11982:4;11988:24;12006:4;11988:9;:24::i;:::-;12013:1;12015::::0;12017:7:::1;:5;:7::i;:::-;12025:15;11912:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12059:13;;;;;;;;;;;12052:29;;;12090:15;;;;;;;;;;;12108:14;12052:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12148:4;12134:11;;:18;;;;;;;;;;;;;;;;;;12177:4;12163:11;;:18;;;;;;;;;;;;;;;;;;11490:699::o:0;4083:29::-;;;;:::o;5927:143::-;6008:7;6035:11;:18;6047:5;6035:18;;;;;;;;;;;;;;;:27;6054:7;6035:27;;;;;;;;;;;;;;;;6028:34;;5927:143;;;;:::o;10698:113::-;2597:12;:10;:12::i;:::-;2587:22;;:6;;;;;;;;;;:22;;;2579:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10799:4:::1;10789:7;4156:2;4212;:13;;;;:::i;:::-;4200:9;:25;;;;:::i;:::-;10779:17;;;;:::i;:::-;:24;;;;:::i;:::-;10766:10;:37;;;;10698:113:::0;:::o;215:98::-;268:7;295:10;288:17;;215:98;:::o;7453:335::-;7563:1;7546:19;;:5;:19;;;7538:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7644:1;7625:21;;:7;:21;;;7617:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7726:6;7696:11;:18;7708:5;7696:18;;;;;;;;;;;;;;;:27;7715:7;7696:27;;;;;;;;;;;;;;;:36;;;;7764:7;7748:32;;7757:5;7748:32;;;7773:6;7748:32;;;;;;:::i;:::-;;;;;;;;7453:335;;;:::o;7796:2061::-;7900:1;7884:18;;:4;:18;;;7876:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7977:1;7963:16;;:2;:16;;;7955:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8047:1;8038:6;:10;8030:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8107:17;8153:7;:5;:7::i;:::-;8145:15;;:4;:15;;;;:32;;;;;8170:7;:5;:7::i;:::-;8164:13;;:2;:13;;;;8145:32;8141:1344;;;8198:20;;;;;;;;;;;8194:388;;;8257:15;;;;;;;;;;;8243:30;;:2;:30;;;;:62;;;;;8291:13;;;;;;;;;;;8277:28;;:2;:28;;;;8243:62;8239:328;;;8380:12;8338:28;:39;8367:9;8338:39;;;;;;;;;;;;;;;;:54;8330:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;8535:12;8493:28;:39;8522:9;8493:39;;;;;;;;;;;;;;;:54;;;;8239:328;8194:388;8610:13;;;;;;;;;;;8602:21;;:4;:21;;;:55;;;;;8641:15;;;;;;;;;;;8627:30;;:2;:30;;;;8602:55;:82;;;;;8662:18;:22;8681:2;8662:22;;;;;;;;;;;;;;;;;;;;;;;;;8661:23;8602:82;8598:336;;;8717:28;8741:3;8717:19;8728:7;;8717:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;8705:40;;8782:10;;8772:6;:20;;8764:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;8873:14;;8863:6;8847:13;8857:2;8847:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8839:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8598:336;8960:13;;;;;;;;;;;8954:19;;:2;:19;;;:44;;;;;8993:4;8977:21;;:4;:21;;;;8954:44;8950:126;;;9031:29;9056:3;9031:20;9042:8;;9031:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;9019:41;;8950:126;9092:28;9123:24;9141:4;9123:9;:24::i;:::-;9092:55;;9167:6;;;;;;;;;;;9166:7;:30;;;;;9183:13;;;;;;;;;;;9177:19;;:2;:19;;;9166:30;:45;;;;;9200:11;;;;;;;;;;;9166:45;:89;;;;;9238:17;;9215:20;:40;9166:89;9162:312;;;9289:17;;9279:6;:27;9276:183;;9331:35;9348:17;;9331:16;:35::i;:::-;9276:183;;;9415:24;9432:6;9415:16;:24::i;:::-;9276:183;9162:312;8179:1306;8141:1344;9512:1;9500:9;:13;9497:171;;;9557:39;9586:9;9557;:24;9575:4;9557:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9530:9;:24;9548:4;9530:24;;;;;;;;;;;;;;;:66;;;;9639:4;9616:40;;9625:4;9616:40;;;9646:9;9616:40;;;;;;:::i;:::-;;;;;;;;9497:171;9698:27;9718:6;9698:9;:15;9708:4;9698:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9680:9;:15;9690:4;9680:15;;;;;;;;;;;;;;;:45;;;;9752:40;9770:21;9781:9;9770:6;:10;;:21;;;;:::i;:::-;9752:9;:13;9762:2;9752:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9736:9;:13;9746:2;9736:13;;;;;;;;;;;;;;;:56;;;;9823:2;9808:41;;9817:4;9808:41;;;9827:21;9838:9;9827:6;:10;;:21;;;;:::i;:::-;9808:41;;;;;;:::i;:::-;;;;;;;;7865:1992;7796:2061;;;:::o;1352:190::-;1438:7;1471:1;1466;:6;;1474:12;1458:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1498:9;1514:1;1510;:5;;;;:::i;:::-;1498:17;;1533:1;1526:8;;;1352:190;;;;;:::o;9865:489::-;4785:4;4776:6;;:13;;;;;;;;;;;;;;;;;;9943:21:::1;9981:1;9967:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9943:40;;10012:4;9994;9999:1;9994:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10038:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10028:4;10033:1;10028:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10071:62;10088:4;10103:15;;;;;;;;;;;10121:11;10071:8;:62::i;:::-;10144:15;;;;;;;;;;;:66;;;10225:11;10251:1;10267:4;10294:10;;;;;;;;;;;10320:15;10144:202;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9932:422;4821:5:::0;4812:6;;:14;;;;;;;;;;;;;;;;;;9865:489;:::o;1550:246::-;1608:7;1637:1;1632;:6;1628:47;;1662:1;1655:8;;;;1628:47;1685:9;1701:1;1697;:5;;;;:::i;:::-;1685:17;;1730:1;1725;1721;:5;;;;:::i;:::-;:10;1713:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1787:1;1780:8;;;1550:246;;;;;:::o;1804:132::-;1862:7;1889:39;1893:1;1896;1889:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1882:46;;1804:132;;;;:::o;1021:179::-;1079:7;1099:9;1115:1;1111;:5;;;;:::i;:::-;1099:17;;1140:1;1135;:6;;1127:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1191:1;1184:8;;;1021:179;;;;:::o;1208:136::-;1266:7;1293:43;1297:1;1300;1293:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1286:50;;1208:136;;;;:::o;1944:189::-;2030:7;2062:1;2058;:5;2065:12;2050:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2089:9;2105:1;2101;:5;;;;:::i;:::-;2089:17;;2124:1;2117:8;;;1944:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;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:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:180::-;6403:77;6400:1;6393:88;6500:4;6497:1;6490:15;6524:4;6521:1;6514:15;6541:102;6583:8;6630:5;6627:1;6623:13;6602:34;;6541:102;;;:::o;6649:848::-;6710:5;6717:4;6741:6;6732:15;;6765:5;6756:14;;6779:712;6800:1;6790:8;6787:15;6779:712;;;6895:4;6890:3;6886:14;6880:4;6877:24;6874:50;;;6904:18;;:::i;:::-;6874:50;6954:1;6944:8;6940:16;6937:451;;;7369:4;7362:5;7358:16;7349:25;;6937:451;7419:4;7413;7409:15;7401:23;;7449:32;7472:8;7449:32;:::i;:::-;7437:44;;6779:712;;;6649:848;;;;;;;:::o;7503:1073::-;7557:5;7748:8;7738:40;;7769:1;7760:10;;7771:5;;7738:40;7797:4;7787:36;;7814:1;7805:10;;7816:5;;7787:36;7883:4;7931:1;7926:27;;;;7967:1;7962:191;;;;7876:277;;7926:27;7944:1;7935:10;;7946:5;;;7962:191;8007:3;7997:8;7994:17;7991:43;;;8014:18;;:::i;:::-;7991:43;8063:8;8060:1;8056:16;8047:25;;8098:3;8091:5;8088:14;8085:40;;;8105:18;;:::i;:::-;8085:40;8138:5;;;7876:277;;8262:2;8252:8;8249:16;8243:3;8237:4;8234:13;8230:36;8212:2;8202:8;8199:16;8194:2;8188:4;8185:12;8181:35;8165:111;8162:246;;;8318:8;8312:4;8308:19;8299:28;;8353:3;8346:5;8343:14;8340:40;;;8360:18;;:::i;:::-;8340:40;8393:5;;8162:246;8433:42;8471:3;8461:8;8455:4;8452:1;8433:42;:::i;:::-;8418:57;;;;8507:4;8502:3;8498:14;8491:5;8488:25;8485:51;;;8516:18;;:::i;:::-;8485:51;8565:4;8558:5;8554:16;8545:25;;7503:1073;;;;;;:::o;8582:281::-;8640:5;8664:23;8682:4;8664:23;:::i;:::-;8656:31;;8708:25;8724:8;8708:25;:::i;:::-;8696:37;;8752:104;8789:66;8779:8;8773:4;8752:104;:::i;:::-;8743:113;;8582:281;;;;:::o;8869:410::-;8909:7;8932:20;8950:1;8932:20;:::i;:::-;8927:25;;8966:20;8984:1;8966:20;:::i;:::-;8961:25;;9021:1;9018;9014:9;9043:30;9061:11;9043:30;:::i;:::-;9032:41;;9222:1;9213:7;9209:15;9206:1;9203:22;9183:1;9176:9;9156:83;9133:139;;9252:18;;:::i;:::-;9133:139;8917:362;8869:410;;;;:::o;9285:182::-;9425:34;9421:1;9413:6;9409:14;9402:58;9285:182;:::o;9473:366::-;9615:3;9636:67;9700:2;9695:3;9636:67;:::i;:::-;9629:74;;9712:93;9801:3;9712:93;:::i;:::-;9830:2;9825:3;9821:12;9814:19;;9473:366;;;:::o;9845:419::-;10011:4;10049:2;10038:9;10034:18;10026:26;;10098:9;10092:4;10088:20;10084:1;10073:9;10069:17;10062:47;10126:131;10252:4;10126:131;:::i;:::-;10118:139;;9845:419;;;:::o;10270:180::-;10318:77;10315:1;10308:88;10415:4;10412:1;10405:15;10439:4;10436:1;10429:15;10456:185;10496:1;10513:20;10531:1;10513:20;:::i;:::-;10508:25;;10547:20;10565:1;10547:20;:::i;:::-;10542:25;;10586:1;10576:35;;10591:18;;:::i;:::-;10576:35;10633:1;10630;10626:9;10621:14;;10456:185;;;;:::o;10647:295::-;10787:34;10783:1;10775:6;10771:14;10764:58;10856:34;10851:2;10843:6;10839:15;10832:59;10925:9;10920:2;10912:6;10908:15;10901:34;10647:295;:::o;10948:366::-;11090:3;11111:67;11175:2;11170:3;11111:67;:::i;:::-;11104:74;;11187:93;11276:3;11187:93;:::i;:::-;11305:2;11300:3;11296:12;11289:19;;10948:366;;;:::o;11320:419::-;11486:4;11524:2;11513:9;11509:18;11501:26;;11573:9;11567:4;11563:20;11559:1;11548:9;11544:17;11537:47;11601:131;11727:4;11601:131;:::i;:::-;11593:139;;11320:419;;;:::o;11745:143::-;11802:5;11833:6;11827:13;11818:22;;11849:33;11876:5;11849:33;:::i;:::-;11745:143;;;;:::o;11894:351::-;11964:6;12013:2;12001:9;11992:7;11988:23;11984:32;11981:119;;;12019:79;;:::i;:::-;11981:119;12139:1;12164:64;12220:7;12211:6;12200:9;12196:22;12164:64;:::i;:::-;12154:74;;12110:128;11894:351;;;;:::o;12251:60::-;12279:3;12300:5;12293:12;;12251:60;;;:::o;12317:142::-;12367:9;12400:53;12418:34;12427:24;12445:5;12427:24;:::i;:::-;12418:34;:::i;:::-;12400:53;:::i;:::-;12387:66;;12317:142;;;:::o;12465:126::-;12515:9;12548:37;12579:5;12548:37;:::i;:::-;12535:50;;12465:126;;;:::o;12597:134::-;12655:9;12688:37;12719:5;12688:37;:::i;:::-;12675:50;;12597:134;;;:::o;12737:147::-;12832:45;12871:5;12832:45;:::i;:::-;12827:3;12820:58;12737:147;;:::o;12890:348::-;13019:4;13057:2;13046:9;13042:18;13034:26;;13070:79;13146:1;13135:9;13131:17;13122:6;13070:79;:::i;:::-;13159:72;13227:2;13216:9;13212:18;13203:6;13159:72;:::i;:::-;12890:348;;;;;:::o;13244:116::-;13314:21;13329:5;13314:21;:::i;:::-;13307:5;13304:32;13294:60;;13350:1;13347;13340:12;13294:60;13244:116;:::o;13366:137::-;13420:5;13451:6;13445:13;13436:22;;13467:30;13491:5;13467:30;:::i;:::-;13366:137;;;;:::o;13509:345::-;13576:6;13625:2;13613:9;13604:7;13600:23;13596:32;13593:119;;;13631:79;;:::i;:::-;13593:119;13751:1;13776:61;13829:7;13820:6;13809:9;13805:22;13776:61;:::i;:::-;13766:71;;13722:125;13509:345;;;;:::o;13860:225::-;14000:34;13996:1;13988:6;13984:14;13977:58;14069:8;14064:2;14056:6;14052:15;14045:33;13860:225;:::o;14091:366::-;14233:3;14254:67;14318:2;14313:3;14254:67;:::i;:::-;14247:74;;14330:93;14419:3;14330:93;:::i;:::-;14448:2;14443:3;14439:12;14432:19;;14091:366;;;:::o;14463:419::-;14629:4;14667:2;14656:9;14652:18;14644:26;;14716:9;14710:4;14706:20;14702:1;14691:9;14687:17;14680:47;14744:131;14870:4;14744:131;:::i;:::-;14736:139;;14463:419;;;:::o;14888:173::-;15028:25;15024:1;15016:6;15012:14;15005:49;14888:173;:::o;15067:366::-;15209:3;15230:67;15294:2;15289:3;15230:67;:::i;:::-;15223:74;;15306:93;15395:3;15306:93;:::i;:::-;15424:2;15419:3;15415:12;15408:19;;15067:366;;;:::o;15439:419::-;15605:4;15643:2;15632:9;15628:18;15620:26;;15692:9;15686:4;15682:20;15678:1;15667:9;15663:17;15656:47;15720:131;15846:4;15720:131;:::i;:::-;15712:139;;15439:419;;;:::o;15864:143::-;15921:5;15952:6;15946:13;15937:22;;15968:33;15995:5;15968:33;:::i;:::-;15864:143;;;;:::o;16013:351::-;16083:6;16132:2;16120:9;16111:7;16107:23;16103:32;16100:119;;;16138:79;;:::i;:::-;16100:119;16258:1;16283:64;16339:7;16330:6;16319:9;16315:22;16283:64;:::i;:::-;16273:74;;16229:128;16013:351;;;;:::o;16370:332::-;16491:4;16529:2;16518:9;16514:18;16506:26;;16542:71;16610:1;16599:9;16595:17;16586:6;16542:71;:::i;:::-;16623:72;16691:2;16680:9;16676:18;16667:6;16623:72;:::i;:::-;16370:332;;;;;:::o;16708:85::-;16753:7;16782:5;16771:16;;16708:85;;;:::o;16799:158::-;16857:9;16890:61;16908:42;16917:32;16943:5;16917:32;:::i;:::-;16908:42;:::i;:::-;16890:61;:::i;:::-;16877:74;;16799:158;;;:::o;16963:147::-;17058:45;17097:5;17058:45;:::i;:::-;17053:3;17046:58;16963:147;;:::o;17116:807::-;17365:4;17403:3;17392:9;17388:19;17380:27;;17417:71;17485:1;17474:9;17470:17;17461:6;17417:71;:::i;:::-;17498:72;17566:2;17555:9;17551:18;17542:6;17498:72;:::i;:::-;17580:80;17656:2;17645:9;17641:18;17632:6;17580:80;:::i;:::-;17670;17746:2;17735:9;17731:18;17722:6;17670:80;:::i;:::-;17760:73;17828:3;17817:9;17813:19;17804:6;17760:73;:::i;:::-;17843;17911:3;17900:9;17896:19;17887:6;17843:73;:::i;:::-;17116:807;;;;;;;;;:::o;17929:663::-;18017:6;18025;18033;18082:2;18070:9;18061:7;18057:23;18053:32;18050:119;;;18088:79;;:::i;:::-;18050:119;18208:1;18233:64;18289:7;18280:6;18269:9;18265:22;18233:64;:::i;:::-;18223:74;;18179:128;18346:2;18372:64;18428:7;18419:6;18408:9;18404:22;18372:64;:::i;:::-;18362:74;;18317:129;18485:2;18511:64;18567:7;18558:6;18547:9;18543:22;18511:64;:::i;:::-;18501:74;;18456:129;17929:663;;;;;:::o;18598:332::-;18719:4;18757:2;18746:9;18742:18;18734:26;;18770:71;18838:1;18827:9;18823:17;18814:6;18770:71;:::i;:::-;18851:72;18919:2;18908:9;18904:18;18895:6;18851:72;:::i;:::-;18598:332;;;;;:::o;18936:223::-;19076:34;19072:1;19064:6;19060:14;19053:58;19145:6;19140:2;19132:6;19128:15;19121:31;18936:223;:::o;19165:366::-;19307:3;19328:67;19392:2;19387:3;19328:67;:::i;:::-;19321:74;;19404:93;19493:3;19404:93;:::i;:::-;19522:2;19517:3;19513:12;19506:19;;19165:366;;;:::o;19537:419::-;19703:4;19741:2;19730:9;19726:18;19718:26;;19790:9;19784:4;19780:20;19776:1;19765:9;19761:17;19754:47;19818:131;19944:4;19818:131;:::i;:::-;19810:139;;19537:419;;;:::o;19962:221::-;20102:34;20098:1;20090:6;20086:14;20079:58;20171:4;20166:2;20158:6;20154:15;20147:29;19962:221;:::o;20189:366::-;20331:3;20352:67;20416:2;20411:3;20352:67;:::i;:::-;20345:74;;20428:93;20517:3;20428:93;:::i;:::-;20546:2;20541:3;20537:12;20530:19;;20189:366;;;:::o;20561:419::-;20727:4;20765:2;20754:9;20750:18;20742:26;;20814:9;20808:4;20804:20;20800:1;20789:9;20785:17;20778:47;20842:131;20968:4;20842:131;:::i;:::-;20834:139;;20561:419;;;:::o;20986:224::-;21126:34;21122:1;21114:6;21110:14;21103:58;21195:7;21190:2;21182:6;21178:15;21171:32;20986:224;:::o;21216:366::-;21358:3;21379:67;21443:2;21438:3;21379:67;:::i;:::-;21372:74;;21455:93;21544:3;21455:93;:::i;:::-;21573:2;21568:3;21564:12;21557:19;;21216:366;;;:::o;21588:419::-;21754:4;21792:2;21781:9;21777:18;21769:26;;21841:9;21835:4;21831:20;21827:1;21816:9;21812:17;21805:47;21869:131;21995:4;21869:131;:::i;:::-;21861:139;;21588:419;;;:::o;22013:222::-;22153:34;22149:1;22141:6;22137:14;22130:58;22222:5;22217:2;22209:6;22205:15;22198:30;22013:222;:::o;22241:366::-;22383:3;22404:67;22468:2;22463:3;22404:67;:::i;:::-;22397:74;;22480:93;22569:3;22480:93;:::i;:::-;22598:2;22593:3;22589:12;22582:19;;22241:366;;;:::o;22613:419::-;22779:4;22817:2;22806:9;22802:18;22794:26;;22866:9;22860:4;22856:20;22852:1;22841:9;22837:17;22830:47;22894:131;23020:4;22894:131;:::i;:::-;22886:139;;22613:419;;;:::o;23038:228::-;23178:34;23174:1;23166:6;23162:14;23155:58;23247:11;23242:2;23234:6;23230:15;23223:36;23038:228;:::o;23272:366::-;23414:3;23435:67;23499:2;23494:3;23435:67;:::i;:::-;23428:74;;23511:93;23600:3;23511:93;:::i;:::-;23629:2;23624:3;23620:12;23613:19;;23272:366;;;:::o;23644:419::-;23810:4;23848:2;23837:9;23833:18;23825:26;;23897:9;23891:4;23887:20;23883:1;23872:9;23868:17;23861:47;23925:131;24051:4;23925:131;:::i;:::-;23917:139;;23644:419;;;:::o;24069:297::-;24209:34;24205:1;24197:6;24193:14;24186:58;24278:34;24273:2;24265:6;24261:15;24254:59;24347:11;24342:2;24334:6;24330:15;24323:36;24069:297;:::o;24372:366::-;24514:3;24535:67;24599:2;24594:3;24535:67;:::i;:::-;24528:74;;24611:93;24700:3;24611:93;:::i;:::-;24729:2;24724:3;24720:12;24713:19;;24372:366;;;:::o;24744:419::-;24910:4;24948:2;24937:9;24933:18;24925:26;;24997:9;24991:4;24987:20;24983:1;24972:9;24968:17;24961:47;25025:131;25151:4;25025:131;:::i;:::-;25017:139;;24744:419;;;:::o;25169:173::-;25309:25;25305:1;25297:6;25293:14;25286:49;25169:173;:::o;25348:366::-;25490:3;25511:67;25575:2;25570:3;25511:67;:::i;:::-;25504:74;;25587:93;25676:3;25587:93;:::i;:::-;25705:2;25700:3;25696:12;25689:19;;25348:366;;;:::o;25720:419::-;25886:4;25924:2;25913:9;25909:18;25901:26;;25973:9;25967:4;25963:20;25959:1;25948:9;25944:17;25937:47;26001:131;26127:4;26001:131;:::i;:::-;25993:139;;25720:419;;;:::o;26145:191::-;26185:3;26204:20;26222:1;26204:20;:::i;:::-;26199:25;;26238:20;26256:1;26238:20;:::i;:::-;26233:25;;26281:1;26278;26274:9;26267:16;;26302:3;26299:1;26296:10;26293:36;;;26309:18;;:::i;:::-;26293:36;26145:191;;;;:::o;26342:176::-;26482:28;26478:1;26470:6;26466:14;26459:52;26342:176;:::o;26524:366::-;26666:3;26687:67;26751:2;26746:3;26687:67;:::i;:::-;26680:74;;26763:93;26852:3;26763:93;:::i;:::-;26881:2;26876:3;26872:12;26865:19;;26524:366;;;:::o;26896:419::-;27062:4;27100:2;27089:9;27085:18;27077:26;;27149:9;27143:4;27139:20;27135:1;27124:9;27120:17;27113:47;27177:131;27303:4;27177:131;:::i;:::-;27169:139;;26896:419;;;:::o;27321:194::-;27361:4;27381:20;27399:1;27381:20;:::i;:::-;27376:25;;27415:20;27433:1;27415:20;:::i;:::-;27410:25;;27459:1;27456;27452:9;27444:17;;27483:1;27477:4;27474:11;27471:37;;;27488:18;;:::i;:::-;27471:37;27321:194;;;;:::o;27521:180::-;27569:77;27566:1;27559:88;27666:4;27663:1;27656:15;27690:4;27687:1;27680:15;27707:180;27755:77;27752:1;27745:88;27852:4;27849:1;27842:15;27876:4;27873:1;27866:15;27893:114;27960:6;27994:5;27988:12;27978:22;;27893:114;;;:::o;28013:184::-;28112:11;28146:6;28141:3;28134:19;28186:4;28181:3;28177:14;28162:29;;28013:184;;;;:::o;28203:132::-;28270:4;28293:3;28285:11;;28323:4;28318:3;28314:14;28306:22;;28203:132;;;:::o;28341:108::-;28418:24;28436:5;28418:24;:::i;:::-;28413:3;28406:37;28341:108;;:::o;28455:179::-;28524:10;28545:46;28587:3;28579:6;28545:46;:::i;:::-;28623:4;28618:3;28614:14;28600:28;;28455:179;;;;:::o;28640:113::-;28710:4;28742;28737:3;28733:14;28725:22;;28640:113;;;:::o;28789:732::-;28908:3;28937:54;28985:5;28937:54;:::i;:::-;29007:86;29086:6;29081:3;29007:86;:::i;:::-;29000:93;;29117:56;29167:5;29117:56;:::i;:::-;29196:7;29227:1;29212:284;29237:6;29234:1;29231:13;29212:284;;;29313:6;29307:13;29340:63;29399:3;29384:13;29340:63;:::i;:::-;29333:70;;29426:60;29479:6;29426:60;:::i;:::-;29416:70;;29272:224;29259:1;29256;29252:9;29247:14;;29212:284;;;29216:14;29512:3;29505:10;;28913:608;;;28789:732;;;;:::o;29527:831::-;29790:4;29828:3;29817:9;29813:19;29805:27;;29842:71;29910:1;29899:9;29895:17;29886:6;29842:71;:::i;:::-;29923:80;29999:2;29988:9;29984:18;29975:6;29923:80;:::i;:::-;30050:9;30044:4;30040:20;30035:2;30024:9;30020:18;30013:48;30078:108;30181:4;30172:6;30078:108;:::i;:::-;30070:116;;30196:72;30264:2;30253:9;30249:18;30240:6;30196:72;:::i;:::-;30278:73;30346:3;30335:9;30331:19;30322:6;30278:73;:::i;:::-;29527:831;;;;;;;;:::o;30364:220::-;30504:34;30500:1;30492:6;30488:14;30481:58;30573:3;30568:2;30560:6;30556:15;30549:28;30364:220;:::o;30590:366::-;30732:3;30753:67;30817:2;30812:3;30753:67;:::i;:::-;30746:74;;30829:93;30918:3;30829:93;:::i;:::-;30947:2;30942:3;30938:12;30931:19;;30590:366;;;:::o;30962:419::-;31128:4;31166:2;31155:9;31151:18;31143:26;;31215:9;31209:4;31205:20;31201:1;31190:9;31186:17;31179:47;31243:131;31369:4;31243:131;:::i;:::-;31235:139;;30962:419;;;:::o;31387:177::-;31527:29;31523:1;31515:6;31511:14;31504:53;31387:177;:::o;31570:366::-;31712:3;31733:67;31797:2;31792:3;31733:67;:::i;:::-;31726:74;;31809:93;31898:3;31809:93;:::i;:::-;31927:2;31922:3;31918:12;31911:19;;31570:366;;;:::o;31942:419::-;32108:4;32146:2;32135:9;32131:18;32123:26;;32195:9;32189:4;32185:20;32181:1;32170:9;32166:17;32159:47;32223:131;32349:4;32223:131;:::i;:::-;32215:139;;31942:419;;;:::o

Swarm Source

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