ETH Price: $2,336.99 (-4.61%)
Gas: 9.26 Gwei

Token

SecureFi (SECURE)
 

Overview

Max Total Supply

1,000,000,000 SECURE

Holders

66

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 SECURE

Value
$0.00
0x564fb145ee04dc69d6dc2f9b2838340f93096e4f
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:
SecureFi

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-01-15
*/

// SPDX-License-Identifier: MIT

/*
he First Hybrid Security Auditor: Human and AI Unite at SecureFi

In the dynamic world of blockchain technology, security is paramount. 
SecureFi has pioneered a groundbreaking approach to EVM smart contract audits, combining the power of human expertise with cutting-edge AI. 
The result? A comprehensive evaluation that brings together the strengths of both worlds.

The Fusion: Human + AI
At the core of SecureFi's methodology lies a unique fusion of human and artificial intelligence. 
Security audits are no longer confined to a single perspective; instead, they harness the insights of skilled auditors alongside the efficiency and precision of AI algorithms.

Telegram : https://t.me/securefi
Website  : https://scrfi.com/
Twitter  : https://x.com/secure_fi
*/

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 SecureFi 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 = 20;
    uint256 public  _sellTax = 20;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = "SecureFi";
    string private constant _symbol = "SECURE";
    uint256 public _maxTxSize = _tTotal * 20 / 1000;
    uint256 public _maxWalletSize = _tTotal * 20 / 1000;
    uint256 public _taxSwapThreshold= _tTotal * 20 / 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 setBuyTaxSecureFi(uint256 tax) external onlyOwner {
        require(tax <= 40, "Tax should be less than or equal to 50");
        _buyTax = tax;
    }

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

    function setMaxWalletSecureFi(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":"setBuyTaxSecureFi","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxTrxSecureFi","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxWalletSecureFi","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"setSellTaxSecureFi","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"}]

60806040525f60055f6101000a81548160ff021916908315150217905550601460065560146007556103e860146012600a6200003c91906200063c565b633b9aca006200004d91906200068c565b6200005991906200068c565b62000065919062000703565b6008556103e860146012600a6200007d91906200063c565b633b9aca006200008e91906200068c565b6200009a91906200068c565b620000a6919062000703565b6009556103e860146012600a620000be91906200063c565b633b9aca00620000cf91906200068c565b620000db91906200068c565b620000e7919062000703565b600a555f600c60156101000a81548160ff0219169083151502179055505f600c60166101000a81548160ff0219169083151502179055503480156200012a575f80fd5b506040516200414c3803806200414c83398181016040528101906200015091906200079f565b5f620001616200047c60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6200024e91906200063c565b633b9aca006200025f91906200068c565b60015f620002726200047c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002c46200048360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003ef6200047c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200044d91906200063c565b633b9aca006200045e91906200068c565b6040516200046d9190620007e0565b60405180910390a350620007fb565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000534578086048111156200050c576200050b620004aa565b5b60018516156200051c5780820291505b80810290506200052c85620004d7565b9450620004ec565b94509492505050565b5f826200054e576001905062000620565b816200055d575f905062000620565b81600181146200057657600281146200058157620005b7565b600191505062000620565b60ff841115620005965762000595620004aa565b5b8360020a915084821115620005b057620005af620004aa565b5b5062000620565b5060208310610133831016604e8410600b8410161715620005f15782820a905083811115620005eb57620005ea620004aa565b5b62000620565b620006008484846001620004e3565b925090508184048111156200061a5762000619620004aa565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006488262000627565b9150620006558362000630565b9250620006847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200053d565b905092915050565b5f620006988262000627565b9150620006a58362000627565b9250828202620006b58162000627565b91508282048414831517620006cf57620006ce620004aa565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200070f8262000627565b91506200071c8362000627565b9250826200072f576200072e620006d6565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000769826200073e565b9050919050565b6200077b816200075d565b811462000786575f80fd5b50565b5f81519050620007998162000770565b92915050565b5f60208284031215620007b757620007b66200073a565b5b5f620007c68482850162000789565b91505092915050565b620007da8162000627565b82525050565b5f602082019050620007f55f830184620007cf565b92915050565b61394380620008095f395ff3fe608060405260043610610184575f3560e01c806389d73132116100d0578063a9c706f211610089578063ca9ec19911610063578063ca9ec1991461052d578063ce10255f14610557578063dd62ed3e1461057f578063fbab9469146105bb5761018b565b8063a9c706f2146104c5578063bf474bed146104ed578063c9567bf9146105175761018b565b806389d73132146103a75780638b816751146103e35780638da5cb5b1461040b5780638f9a55c01461043557806395d89b411461045f578063a9059cbb146104895761018b565b806342a110951161013d578063715018a611610117578063715018a61461033d578063751039fc146103535780637d7ab9a3146103695780637efd4be71461037f5761018b565b806342a11095146102ad578063511b5f61146102d757806370a08231146103015761018b565b806306fdde031461018f578063095ea7b3146101b957806309b7919a146101f557806318160ddd1461021d57806323b872dd14610247578063313ce567146102835761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a36105e3565b6040516101b0919061286b565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da919061291c565b610620565b6040516101ec9190612974565b60405180910390f35b348015610200575f80fd5b5061021b6004803603810190610216919061298d565b61063d565b005b348015610228575f80fd5b5061023161070f565b60405161023e91906129c7565b60405180910390f35b348015610252575f80fd5b5061026d600480360381019061026891906129e0565b610732565b60405161027a9190612974565b60405180910390f35b34801561028e575f80fd5b50610297610806565b6040516102a49190612a4b565b60405180910390f35b3480156102b8575f80fd5b506102c161080e565b6040516102ce91906129c7565b60405180910390f35b3480156102e2575f80fd5b506102eb610814565b6040516102f891906129c7565b60405180910390f35b34801561030c575f80fd5b5061032760048036038101906103229190612a64565b61081a565b60405161033491906129c7565b60405180910390f35b348015610348575f80fd5b50610351610860565b005b34801561035e575f80fd5b506103676109ae565b005b348015610374575f80fd5b5061037d610af6565b005b34801561038a575f80fd5b506103a560048036038101906103a0919061298d565b610b7c565b005b3480156103b2575f80fd5b506103cd60048036038101906103c8919061291c565b610ccc565b6040516103da9190612974565b60405180910390f35b3480156103ee575f80fd5b506104096004803603810190610404919061298d565b610e8e565b005b348015610416575f80fd5b5061041f610f70565b60405161042c9190612a9e565b60405180910390f35b348015610440575f80fd5b50610449610f97565b60405161045691906129c7565b60405180910390f35b34801561046a575f80fd5b50610473610f9d565b604051610480919061286b565b60405180910390f35b348015610494575f80fd5b506104af60048036038101906104aa919061291c565b610fda565b6040516104bc9190612974565b60405180910390f35b3480156104d0575f80fd5b506104eb60048036038101906104e6919061298d565b610ff7565b005b3480156104f8575f80fd5b506105016110e7565b60405161050e91906129c7565b60405180910390f35b348015610522575f80fd5b5061052b6110ed565b005b348015610538575f80fd5b5061054161160f565b60405161054e91906129c7565b60405180910390f35b348015610562575f80fd5b5061057d6004803603810190610578919061298d565b611615565b005b34801561058a575f80fd5b506105a560048036038101906105a09190612ab7565b6116e7565b6040516105b291906129c7565b60405180910390f35b3480156105c6575f80fd5b506105e160048036038101906105dc919061298d565b611769565b005b60606040518060400160405280600881526020017f5365637572654669000000000000000000000000000000000000000000000000815250905090565b5f61063361062c61184b565b8484611852565b6001905092915050565b61064561184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c890612b3f565b60405180910390fd5b6103e8816012600a6106e39190612cb9565b633b9aca006106f29190612d03565b6106fc9190612d03565b6107069190612d71565b60088190555050565b5f6012600a61071e9190612cb9565b633b9aca0061072d9190612d03565b905090565b5f61073e848484611a15565b6107fb8461074a61184b565b6107f6856040518060600160405280602881526020016138e66028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107ad61184b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232b9092919063ffffffff16565b611852565b600190509392505050565b5f6012905090565b60065481565b60085481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61086861184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108eb90612b3f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109b661184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3990612b3f565b60405180910390fd5b6012600a610a509190612cb9565b633b9aca00610a5f9190612d03565b6008819055506012600a610a739190612cb9565b633b9aca00610a829190612d03565b6009819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610ad09190612cb9565b633b9aca00610adf9190612d03565b604051610aec91906129c7565b60405180910390a1565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b3761184b565b73ffffffffffffffffffffffffffffffffffffffff1614610b56575f80fd5b5f610b603061081a565b90505f811115610b7457610b738161238d565b5b5f4790505050565b610b8461184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0790612b3f565b60405180910390fd5b6103e8811115610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c90612e37565b60405180910390fd5b6103e8816012600a610c679190612cb9565b633b9aca00610c769190612d03565b610c809190612d03565b610c8a9190612d71565b600a819055507f17189f2f6a412549aa02ac15113cc51505ce2d076c8cbda6fa1454fd7cfdadab600a54604051610cc191906129c7565b60405180910390a150565b5f610cd561184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5890612b3f565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d9b9190612a9e565b602060405180830381865afa158015610db6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dda9190612e69565b905082811115610e83578373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401610e41929190612eef565b6020604051808303815f875af1158015610e5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e819190612f40565b505b600191505092915050565b610e9661184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1990612b3f565b60405180910390fd5b6028811115610f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5d90612fdb565b60405180910390fd5b8060078190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600681526020017f5345435552450000000000000000000000000000000000000000000000000000815250905090565b5f610fed610fe661184b565b8484611a15565b6001905092915050565b610fff61184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461108b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108290612b3f565b60405180910390fd5b5f479050818111156110e35761109f61184b565b73ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156110e1573d5f803e3d5ffd5b505b5050565b600a5481565b6110f561184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611181576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117890612b3f565b60405180910390fd5b600c60149054906101000a900460ff16156111d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c890613043565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061126d30600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a6112599190612cb9565b633b9aca006112689190612d03565b611852565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112fb9190613075565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611381573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113a59190613075565b6040518363ffffffff1660e01b81526004016113c29291906130a0565b6020604051808303815f875af11580156113de573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114029190613075565b600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306114893061081a565b5f80611493610f70565b426040518863ffffffff1660e01b81526004016114b596959493929190613100565b60606040518083038185885af11580156114d1573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114f6919061315f565b505050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016115969291906131af565b6020604051808303815f875af11580156115b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d69190612f40565b506001600c60166101000a81548160ff0219169083151502179055506001600c60146101000a81548160ff021916908315150217905550565b60075481565b61161d61184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a090612b3f565b60405180910390fd5b6103e8816012600a6116bb9190612cb9565b633b9aca006116ca9190612d03565b6116d49190612d03565b6116de9190612d71565b60098190555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61177161184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f490612b3f565b60405180910390fd5b6028811115611841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183890612fdb565b60405180910390fd5b8060068190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b790613246565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361192e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611925906132d4565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a0891906129c7565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7a90613362565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae8906133f0565b60405180910390fd5b5f8111611b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2a9061347e565b60405180910390fd5b5f611b3c610f70565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611baa5750611b7a610f70565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561207b5760055f9054906101000a900460ff1615611d3557600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c6d5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d34574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce890613532565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611dde5750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e31575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611efe57611e5e6064611e506006548561261a90919063ffffffff16565b61269190919063ffffffff16565b9050600854821115611ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9c9061359a565b60405180910390fd5b60095482611eb28561081a565b611ebc91906135b8565b1115611efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef490613635565b60405180910390fd5b5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f8657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611fb657611fb36064611fa56007548561261a90919063ffffffff16565b61269190919063ffffffff16565b90505b5f611fc03061081a565b9050600c60159054906101000a900460ff1615801561202b5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156120435750600c60169054906101000a900460ff165b80156120505750600a5481115b1561207957600a54831061206e57612069600a5461238d565b612078565b6120778361238d565b5b5b505b5f81111561217a576120d38160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126da90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161217191906129c7565b60405180910390a35b6121ca8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461273790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061226d612221828461273790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126da90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612310848661273790919063ffffffff16565b60405161231d91906129c7565b60405180910390a350505050565b5f838311158290612372576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612369919061286b565b60405180910390fd5b505f83856123809190613653565b9050809150509392505050565b6001600c60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156123c4576123c3613686565b5b6040519080825280602002602001820160405280156123f25781602001602082028036833780820191505090505b50905030815f81518110612409576124086136b3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124d19190613075565b816001815181106124e5576124e46136b3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061254b30600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611852565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f84600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016125cf959493929190613797565b5f604051808303815f87803b1580156125e6575f80fd5b505af11580156125f8573d5f803e3d5ffd5b50505050505f600c60156101000a81548160ff02191690831515021790555050565b5f80830361262a575f905061268b565b5f82846126379190612d03565b90508284826126469190612d71565b14612686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267d9061385f565b60405180910390fd5b809150505b92915050565b5f6126d283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612780565b905092915050565b5f8082846126e891906135b8565b90508381101561272d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612724906138c7565b60405180910390fd5b8091505092915050565b5f61277883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061232b565b905092915050565b5f80831182906127c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127bd919061286b565b60405180910390fd5b505f83856127d49190612d71565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156128185780820151818401526020810190506127fd565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61283d826127e1565b61284781856127eb565b93506128578185602086016127fb565b61286081612823565b840191505092915050565b5f6020820190508181035f8301526128838184612833565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6128b88261288f565b9050919050565b6128c8816128ae565b81146128d2575f80fd5b50565b5f813590506128e3816128bf565b92915050565b5f819050919050565b6128fb816128e9565b8114612905575f80fd5b50565b5f81359050612916816128f2565b92915050565b5f80604083850312156129325761293161288b565b5b5f61293f858286016128d5565b925050602061295085828601612908565b9150509250929050565b5f8115159050919050565b61296e8161295a565b82525050565b5f6020820190506129875f830184612965565b92915050565b5f602082840312156129a2576129a161288b565b5b5f6129af84828501612908565b91505092915050565b6129c1816128e9565b82525050565b5f6020820190506129da5f8301846129b8565b92915050565b5f805f606084860312156129f7576129f661288b565b5b5f612a04868287016128d5565b9350506020612a15868287016128d5565b9250506040612a2686828701612908565b9150509250925092565b5f60ff82169050919050565b612a4581612a30565b82525050565b5f602082019050612a5e5f830184612a3c565b92915050565b5f60208284031215612a7957612a7861288b565b5b5f612a86848285016128d5565b91505092915050565b612a98816128ae565b82525050565b5f602082019050612ab15f830184612a8f565b92915050565b5f8060408385031215612acd57612acc61288b565b5b5f612ada858286016128d5565b9250506020612aeb858286016128d5565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612b296020836127eb565b9150612b3482612af5565b602082019050919050565b5f6020820190508181035f830152612b5681612b1d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612bdf57808604811115612bbb57612bba612b5d565b5b6001851615612bca5780820291505b8081029050612bd885612b8a565b9450612b9f565b94509492505050565b5f82612bf75760019050612cb2565b81612c04575f9050612cb2565b8160018114612c1a5760028114612c2457612c53565b6001915050612cb2565b60ff841115612c3657612c35612b5d565b5b8360020a915084821115612c4d57612c4c612b5d565b5b50612cb2565b5060208310610133831016604e8410600b8410161715612c885782820a905083811115612c8357612c82612b5d565b5b612cb2565b612c958484846001612b96565b92509050818404811115612cac57612cab612b5d565b5b81810290505b9392505050565b5f612cc3826128e9565b9150612cce83612a30565b9250612cfb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612be8565b905092915050565b5f612d0d826128e9565b9150612d18836128e9565b9250828202612d26816128e9565b91508282048414831517612d3d57612d3c612b5d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d7b826128e9565b9150612d86836128e9565b925082612d9657612d95612d44565b5b828204905092915050565b7f6368616e6765546178537761705468726573686f6c643a2050657263656e74615f8201527f67652073686f756c64206265206c657373207468616e206f7220657175616c2060208201527f746f203130303000000000000000000000000000000000000000000000000000604082015250565b5f612e216047836127eb565b9150612e2c82612da1565b606082019050919050565b5f6020820190508181035f830152612e4e81612e15565b9050919050565b5f81519050612e63816128f2565b92915050565b5f60208284031215612e7e57612e7d61288b565b5b5f612e8b84828501612e55565b91505092915050565b5f819050919050565b5f612eb7612eb2612ead8461288f565b612e94565b61288f565b9050919050565b5f612ec882612e9d565b9050919050565b5f612ed982612ebe565b9050919050565b612ee981612ecf565b82525050565b5f604082019050612f025f830185612ee0565b612f0f60208301846129b8565b9392505050565b612f1f8161295a565b8114612f29575f80fd5b50565b5f81519050612f3a81612f16565b92915050565b5f60208284031215612f5557612f5461288b565b5b5f612f6284828501612f2c565b91505092915050565b7f5461782073686f756c64206265206c657373207468616e206f7220657175616c5f8201527f20746f2035300000000000000000000000000000000000000000000000000000602082015250565b5f612fc56026836127eb565b9150612fd082612f6b565b604082019050919050565b5f6020820190508181035f830152612ff281612fb9565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61302d6017836127eb565b915061303882612ff9565b602082019050919050565b5f6020820190508181035f83015261305a81613021565b9050919050565b5f8151905061306f816128bf565b92915050565b5f6020828403121561308a5761308961288b565b5b5f61309784828501613061565b91505092915050565b5f6040820190506130b35f830185612a8f565b6130c06020830184612a8f565b9392505050565b5f819050919050565b5f6130ea6130e56130e0846130c7565b612e94565b6128e9565b9050919050565b6130fa816130d0565b82525050565b5f60c0820190506131135f830189612a8f565b61312060208301886129b8565b61312d60408301876130f1565b61313a60608301866130f1565b6131476080830185612a8f565b61315460a08301846129b8565b979650505050505050565b5f805f606084860312156131765761317561288b565b5b5f61318386828701612e55565b935050602061319486828701612e55565b92505060406131a586828701612e55565b9150509250925092565b5f6040820190506131c25f830185612a8f565b6131cf60208301846129b8565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6132306024836127eb565b915061323b826131d6565b604082019050919050565b5f6020820190508181035f83015261325d81613224565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132be6022836127eb565b91506132c982613264565b604082019050919050565b5f6020820190508181035f8301526132eb816132b2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61334c6025836127eb565b9150613357826132f2565b604082019050919050565b5f6020820190508181035f83015261337981613340565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6133da6023836127eb565b91506133e582613380565b604082019050919050565b5f6020820190508181035f830152613407816133ce565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6134686029836127eb565b91506134738261340e565b604082019050919050565b5f6020820190508181035f8301526134958161345c565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f61351c6049836127eb565b91506135278261349c565b606082019050919050565b5f6020820190508181035f83015261354981613510565b9050919050565b7f4578636565647320746865205f6d6178547853697a652e0000000000000000005f82015250565b5f6135846017836127eb565b915061358f82613550565b602082019050919050565b5f6020820190508181035f8301526135b181613578565b9050919050565b5f6135c2826128e9565b91506135cd836128e9565b92508282019050808211156135e5576135e4612b5d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61361f601a836127eb565b915061362a826135eb565b602082019050919050565b5f6020820190508181035f83015261364c81613613565b9050919050565b5f61365d826128e9565b9150613668836128e9565b92508282039050818111156136805761367f612b5d565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613712816128ae565b82525050565b5f6137238383613709565b60208301905092915050565b5f602082019050919050565b5f613745826136e0565b61374f81856136ea565b935061375a836136fa565b805f5b8381101561378a5781516137718882613718565b975061377c8361372f565b92505060018101905061375d565b5085935050505092915050565b5f60a0820190506137aa5f8301886129b8565b6137b760208301876130f1565b81810360408301526137c9818661373b565b90506137d86060830185612a8f565b6137e560808301846129b8565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138496021836127eb565b9150613854826137ef565b604082019050919050565b5f6020820190508181035f8301526138768161383d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6138b1601b836127eb565b91506138bc8261387d565b602082019050919050565b5f6020820190508181035f8301526138de816138a5565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207e8647bce277b6145dc9b4b8e1a8ef1a0850472c072fd41144d56096aaf0ac8e64736f6c634300081700330000000000000000000000000535372759a68f4b808208b07ee436b13f429742

Deployed Bytecode

0x608060405260043610610184575f3560e01c806389d73132116100d0578063a9c706f211610089578063ca9ec19911610063578063ca9ec1991461052d578063ce10255f14610557578063dd62ed3e1461057f578063fbab9469146105bb5761018b565b8063a9c706f2146104c5578063bf474bed146104ed578063c9567bf9146105175761018b565b806389d73132146103a75780638b816751146103e35780638da5cb5b1461040b5780638f9a55c01461043557806395d89b411461045f578063a9059cbb146104895761018b565b806342a110951161013d578063715018a611610117578063715018a61461033d578063751039fc146103535780637d7ab9a3146103695780637efd4be71461037f5761018b565b806342a11095146102ad578063511b5f61146102d757806370a08231146103015761018b565b806306fdde031461018f578063095ea7b3146101b957806309b7919a146101f557806318160ddd1461021d57806323b872dd14610247578063313ce567146102835761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a36105e3565b6040516101b0919061286b565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da919061291c565b610620565b6040516101ec9190612974565b60405180910390f35b348015610200575f80fd5b5061021b6004803603810190610216919061298d565b61063d565b005b348015610228575f80fd5b5061023161070f565b60405161023e91906129c7565b60405180910390f35b348015610252575f80fd5b5061026d600480360381019061026891906129e0565b610732565b60405161027a9190612974565b60405180910390f35b34801561028e575f80fd5b50610297610806565b6040516102a49190612a4b565b60405180910390f35b3480156102b8575f80fd5b506102c161080e565b6040516102ce91906129c7565b60405180910390f35b3480156102e2575f80fd5b506102eb610814565b6040516102f891906129c7565b60405180910390f35b34801561030c575f80fd5b5061032760048036038101906103229190612a64565b61081a565b60405161033491906129c7565b60405180910390f35b348015610348575f80fd5b50610351610860565b005b34801561035e575f80fd5b506103676109ae565b005b348015610374575f80fd5b5061037d610af6565b005b34801561038a575f80fd5b506103a560048036038101906103a0919061298d565b610b7c565b005b3480156103b2575f80fd5b506103cd60048036038101906103c8919061291c565b610ccc565b6040516103da9190612974565b60405180910390f35b3480156103ee575f80fd5b506104096004803603810190610404919061298d565b610e8e565b005b348015610416575f80fd5b5061041f610f70565b60405161042c9190612a9e565b60405180910390f35b348015610440575f80fd5b50610449610f97565b60405161045691906129c7565b60405180910390f35b34801561046a575f80fd5b50610473610f9d565b604051610480919061286b565b60405180910390f35b348015610494575f80fd5b506104af60048036038101906104aa919061291c565b610fda565b6040516104bc9190612974565b60405180910390f35b3480156104d0575f80fd5b506104eb60048036038101906104e6919061298d565b610ff7565b005b3480156104f8575f80fd5b506105016110e7565b60405161050e91906129c7565b60405180910390f35b348015610522575f80fd5b5061052b6110ed565b005b348015610538575f80fd5b5061054161160f565b60405161054e91906129c7565b60405180910390f35b348015610562575f80fd5b5061057d6004803603810190610578919061298d565b611615565b005b34801561058a575f80fd5b506105a560048036038101906105a09190612ab7565b6116e7565b6040516105b291906129c7565b60405180910390f35b3480156105c6575f80fd5b506105e160048036038101906105dc919061298d565b611769565b005b60606040518060400160405280600881526020017f5365637572654669000000000000000000000000000000000000000000000000815250905090565b5f61063361062c61184b565b8484611852565b6001905092915050565b61064561184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c890612b3f565b60405180910390fd5b6103e8816012600a6106e39190612cb9565b633b9aca006106f29190612d03565b6106fc9190612d03565b6107069190612d71565b60088190555050565b5f6012600a61071e9190612cb9565b633b9aca0061072d9190612d03565b905090565b5f61073e848484611a15565b6107fb8461074a61184b565b6107f6856040518060600160405280602881526020016138e66028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107ad61184b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232b9092919063ffffffff16565b611852565b600190509392505050565b5f6012905090565b60065481565b60085481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61086861184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108eb90612b3f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109b661184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3990612b3f565b60405180910390fd5b6012600a610a509190612cb9565b633b9aca00610a5f9190612d03565b6008819055506012600a610a739190612cb9565b633b9aca00610a829190612d03565b6009819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610ad09190612cb9565b633b9aca00610adf9190612d03565b604051610aec91906129c7565b60405180910390a1565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b3761184b565b73ffffffffffffffffffffffffffffffffffffffff1614610b56575f80fd5b5f610b603061081a565b90505f811115610b7457610b738161238d565b5b5f4790505050565b610b8461184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0790612b3f565b60405180910390fd5b6103e8811115610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c90612e37565b60405180910390fd5b6103e8816012600a610c679190612cb9565b633b9aca00610c769190612d03565b610c809190612d03565b610c8a9190612d71565b600a819055507f17189f2f6a412549aa02ac15113cc51505ce2d076c8cbda6fa1454fd7cfdadab600a54604051610cc191906129c7565b60405180910390a150565b5f610cd561184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5890612b3f565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d9b9190612a9e565b602060405180830381865afa158015610db6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dda9190612e69565b905082811115610e83578373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401610e41929190612eef565b6020604051808303815f875af1158015610e5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e819190612f40565b505b600191505092915050565b610e9661184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1990612b3f565b60405180910390fd5b6028811115610f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5d90612fdb565b60405180910390fd5b8060078190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600681526020017f5345435552450000000000000000000000000000000000000000000000000000815250905090565b5f610fed610fe661184b565b8484611a15565b6001905092915050565b610fff61184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461108b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108290612b3f565b60405180910390fd5b5f479050818111156110e35761109f61184b565b73ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156110e1573d5f803e3d5ffd5b505b5050565b600a5481565b6110f561184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611181576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117890612b3f565b60405180910390fd5b600c60149054906101000a900460ff16156111d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c890613043565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061126d30600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a6112599190612cb9565b633b9aca006112689190612d03565b611852565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112fb9190613075565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611381573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113a59190613075565b6040518363ffffffff1660e01b81526004016113c29291906130a0565b6020604051808303815f875af11580156113de573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114029190613075565b600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306114893061081a565b5f80611493610f70565b426040518863ffffffff1660e01b81526004016114b596959493929190613100565b60606040518083038185885af11580156114d1573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114f6919061315f565b505050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016115969291906131af565b6020604051808303815f875af11580156115b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115d69190612f40565b506001600c60166101000a81548160ff0219169083151502179055506001600c60146101000a81548160ff021916908315150217905550565b60075481565b61161d61184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a090612b3f565b60405180910390fd5b6103e8816012600a6116bb9190612cb9565b633b9aca006116ca9190612d03565b6116d49190612d03565b6116de9190612d71565b60098190555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61177161184b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f490612b3f565b60405180910390fd5b6028811115611841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183890612fdb565b60405180910390fd5b8060068190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b790613246565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361192e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611925906132d4565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a0891906129c7565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7a90613362565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae8906133f0565b60405180910390fd5b5f8111611b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2a9061347e565b60405180910390fd5b5f611b3c610f70565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611baa5750611b7a610f70565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561207b5760055f9054906101000a900460ff1615611d3557600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c6d5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d34574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce890613532565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611dde5750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e31575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611efe57611e5e6064611e506006548561261a90919063ffffffff16565b61269190919063ffffffff16565b9050600854821115611ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9c9061359a565b60405180910390fd5b60095482611eb28561081a565b611ebc91906135b8565b1115611efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef490613635565b60405180910390fd5b5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f8657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611fb657611fb36064611fa56007548561261a90919063ffffffff16565b61269190919063ffffffff16565b90505b5f611fc03061081a565b9050600c60159054906101000a900460ff1615801561202b5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156120435750600c60169054906101000a900460ff165b80156120505750600a5481115b1561207957600a54831061206e57612069600a5461238d565b612078565b6120778361238d565b5b5b505b5f81111561217a576120d38160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126da90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161217191906129c7565b60405180910390a35b6121ca8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461273790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061226d612221828461273790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126da90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612310848661273790919063ffffffff16565b60405161231d91906129c7565b60405180910390a350505050565b5f838311158290612372576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612369919061286b565b60405180910390fd5b505f83856123809190613653565b9050809150509392505050565b6001600c60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156123c4576123c3613686565b5b6040519080825280602002602001820160405280156123f25781602001602082028036833780820191505090505b50905030815f81518110612409576124086136b3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124d19190613075565b816001815181106124e5576124e46136b3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061254b30600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611852565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f84600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016125cf959493929190613797565b5f604051808303815f87803b1580156125e6575f80fd5b505af11580156125f8573d5f803e3d5ffd5b50505050505f600c60156101000a81548160ff02191690831515021790555050565b5f80830361262a575f905061268b565b5f82846126379190612d03565b90508284826126469190612d71565b14612686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267d9061385f565b60405180910390fd5b809150505b92915050565b5f6126d283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612780565b905092915050565b5f8082846126e891906135b8565b90508381101561272d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612724906138c7565b60405180910390fd5b8091505092915050565b5f61277883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061232b565b905092915050565b5f80831182906127c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127bd919061286b565b60405180910390fd5b505f83856127d49190612d71565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156128185780820151818401526020810190506127fd565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61283d826127e1565b61284781856127eb565b93506128578185602086016127fb565b61286081612823565b840191505092915050565b5f6020820190508181035f8301526128838184612833565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6128b88261288f565b9050919050565b6128c8816128ae565b81146128d2575f80fd5b50565b5f813590506128e3816128bf565b92915050565b5f819050919050565b6128fb816128e9565b8114612905575f80fd5b50565b5f81359050612916816128f2565b92915050565b5f80604083850312156129325761293161288b565b5b5f61293f858286016128d5565b925050602061295085828601612908565b9150509250929050565b5f8115159050919050565b61296e8161295a565b82525050565b5f6020820190506129875f830184612965565b92915050565b5f602082840312156129a2576129a161288b565b5b5f6129af84828501612908565b91505092915050565b6129c1816128e9565b82525050565b5f6020820190506129da5f8301846129b8565b92915050565b5f805f606084860312156129f7576129f661288b565b5b5f612a04868287016128d5565b9350506020612a15868287016128d5565b9250506040612a2686828701612908565b9150509250925092565b5f60ff82169050919050565b612a4581612a30565b82525050565b5f602082019050612a5e5f830184612a3c565b92915050565b5f60208284031215612a7957612a7861288b565b5b5f612a86848285016128d5565b91505092915050565b612a98816128ae565b82525050565b5f602082019050612ab15f830184612a8f565b92915050565b5f8060408385031215612acd57612acc61288b565b5b5f612ada858286016128d5565b9250506020612aeb858286016128d5565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612b296020836127eb565b9150612b3482612af5565b602082019050919050565b5f6020820190508181035f830152612b5681612b1d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612bdf57808604811115612bbb57612bba612b5d565b5b6001851615612bca5780820291505b8081029050612bd885612b8a565b9450612b9f565b94509492505050565b5f82612bf75760019050612cb2565b81612c04575f9050612cb2565b8160018114612c1a5760028114612c2457612c53565b6001915050612cb2565b60ff841115612c3657612c35612b5d565b5b8360020a915084821115612c4d57612c4c612b5d565b5b50612cb2565b5060208310610133831016604e8410600b8410161715612c885782820a905083811115612c8357612c82612b5d565b5b612cb2565b612c958484846001612b96565b92509050818404811115612cac57612cab612b5d565b5b81810290505b9392505050565b5f612cc3826128e9565b9150612cce83612a30565b9250612cfb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612be8565b905092915050565b5f612d0d826128e9565b9150612d18836128e9565b9250828202612d26816128e9565b91508282048414831517612d3d57612d3c612b5d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d7b826128e9565b9150612d86836128e9565b925082612d9657612d95612d44565b5b828204905092915050565b7f6368616e6765546178537761705468726573686f6c643a2050657263656e74615f8201527f67652073686f756c64206265206c657373207468616e206f7220657175616c2060208201527f746f203130303000000000000000000000000000000000000000000000000000604082015250565b5f612e216047836127eb565b9150612e2c82612da1565b606082019050919050565b5f6020820190508181035f830152612e4e81612e15565b9050919050565b5f81519050612e63816128f2565b92915050565b5f60208284031215612e7e57612e7d61288b565b5b5f612e8b84828501612e55565b91505092915050565b5f819050919050565b5f612eb7612eb2612ead8461288f565b612e94565b61288f565b9050919050565b5f612ec882612e9d565b9050919050565b5f612ed982612ebe565b9050919050565b612ee981612ecf565b82525050565b5f604082019050612f025f830185612ee0565b612f0f60208301846129b8565b9392505050565b612f1f8161295a565b8114612f29575f80fd5b50565b5f81519050612f3a81612f16565b92915050565b5f60208284031215612f5557612f5461288b565b5b5f612f6284828501612f2c565b91505092915050565b7f5461782073686f756c64206265206c657373207468616e206f7220657175616c5f8201527f20746f2035300000000000000000000000000000000000000000000000000000602082015250565b5f612fc56026836127eb565b9150612fd082612f6b565b604082019050919050565b5f6020820190508181035f830152612ff281612fb9565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61302d6017836127eb565b915061303882612ff9565b602082019050919050565b5f6020820190508181035f83015261305a81613021565b9050919050565b5f8151905061306f816128bf565b92915050565b5f6020828403121561308a5761308961288b565b5b5f61309784828501613061565b91505092915050565b5f6040820190506130b35f830185612a8f565b6130c06020830184612a8f565b9392505050565b5f819050919050565b5f6130ea6130e56130e0846130c7565b612e94565b6128e9565b9050919050565b6130fa816130d0565b82525050565b5f60c0820190506131135f830189612a8f565b61312060208301886129b8565b61312d60408301876130f1565b61313a60608301866130f1565b6131476080830185612a8f565b61315460a08301846129b8565b979650505050505050565b5f805f606084860312156131765761317561288b565b5b5f61318386828701612e55565b935050602061319486828701612e55565b92505060406131a586828701612e55565b9150509250925092565b5f6040820190506131c25f830185612a8f565b6131cf60208301846129b8565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6132306024836127eb565b915061323b826131d6565b604082019050919050565b5f6020820190508181035f83015261325d81613224565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132be6022836127eb565b91506132c982613264565b604082019050919050565b5f6020820190508181035f8301526132eb816132b2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61334c6025836127eb565b9150613357826132f2565b604082019050919050565b5f6020820190508181035f83015261337981613340565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6133da6023836127eb565b91506133e582613380565b604082019050919050565b5f6020820190508181035f830152613407816133ce565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6134686029836127eb565b91506134738261340e565b604082019050919050565b5f6020820190508181035f8301526134958161345c565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f61351c6049836127eb565b91506135278261349c565b606082019050919050565b5f6020820190508181035f83015261354981613510565b9050919050565b7f4578636565647320746865205f6d6178547853697a652e0000000000000000005f82015250565b5f6135846017836127eb565b915061358f82613550565b602082019050919050565b5f6020820190508181035f8301526135b181613578565b9050919050565b5f6135c2826128e9565b91506135cd836128e9565b92508282019050808211156135e5576135e4612b5d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61361f601a836127eb565b915061362a826135eb565b602082019050919050565b5f6020820190508181035f83015261364c81613613565b9050919050565b5f61365d826128e9565b9150613668836128e9565b92508282039050818111156136805761367f612b5d565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613712816128ae565b82525050565b5f6137238383613709565b60208301905092915050565b5f602082019050919050565b5f613745826136e0565b61374f81856136ea565b935061375a836136fa565b805f5b8381101561378a5781516137718882613718565b975061377c8361372f565b92505060018101905061375d565b5085935050505092915050565b5f60a0820190506137aa5f8301886129b8565b6137b760208301876130f1565b81810360408301526137c9818661373b565b90506137d86060830185612a8f565b6137e560808301846129b8565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138496021836127eb565b9150613854826137ef565b604082019050919050565b5f6020820190508181035f8301526138768161383d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6138b1601b836127eb565b91506138bc8261387d565b602082019050919050565b5f6020820190508181035f8301526138de816138a5565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207e8647bce277b6145dc9b4b8e1a8ef1a0850472c072fd41144d56096aaf0ac8e64736f6c63430008170033

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

0000000000000000000000000535372759a68f4b808208b07ee436b13f429742

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000535372759a68f4b808208b07ee436b13f429742


Deployed Bytecode Sourcemap

4261:8656:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5912:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6745:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11375:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6189:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6914:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6098:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4713:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4996:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6292:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3342:148;;;;;;;;;;;;;:::i;:::-;;11636:194;;;;;;;;;;;;;:::i;:::-;;11839:331;;;;;;;;;;;;;:::i;:::-;;7813:299;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7471:334;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11199:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3128:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5050:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6003:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6419:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7235:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5108:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12178:699;;;;;;;;;;;;;:::i;:::-;;4748:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11502:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6594:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11029:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5912:83;5949:13;5982:5;;;;;;;;;;;;;;;;;5975:12;;5912:83;:::o;6745:161::-;6820:4;6837:39;6846:12;:10;:12::i;:::-;6860:7;6869:6;6837:8;:39::i;:::-;6894:4;6887:11;;6745:161;;;;:::o;11375:119::-;3265:12;:10;:12::i;:::-;3255:22;;:6;;;;;;;;;;:22;;;3247:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11482:4:::1;11472:7;4821:2;4878;:13;;;;:::i;:::-;4865:10;:26;;;;:::i;:::-;11462:17;;;;:::i;:::-;:24;;;;:::i;:::-;11449:10;:37;;;;11375:119:::0;:::o;6189:95::-;6242:7;4821:2;4878;:13;;;;:::i;:::-;4865:10;:26;;;;:::i;:::-;6262:14;;6189:95;:::o;6914:313::-;7012:4;7029:36;7039:6;7047:9;7058:6;7029:9;:36::i;:::-;7076:121;7085:6;7093:12;:10;:12::i;:::-;7107:89;7145:6;7107:89;;;;;;;;;;;;;;;;;:11;:19;7119:6;7107:19;;;;;;;;;;;;;;;:33;7127:12;:10;:12::i;:::-;7107:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7076:8;:121::i;:::-;7215:4;7208:11;;6914:313;;;;;:::o;6098:83::-;6139:5;4821:2;6157:16;;6098:83;:::o;4713:28::-;;;;:::o;4996:47::-;;;;:::o;6292:119::-;6358:7;6385:9;:18;6395:7;6385:18;;;;;;;;;;;;;;;;6378:25;;6292:119;;;:::o;3342:148::-;3265:12;:10;:12::i;:::-;3255:22;;:6;;;;;;;;;;:22;;;3247:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3449:1:::1;3412:40;;3433:6;::::0;::::1;;;;;;;;3412:40;;;;;;;;;;;;3480:1;3463:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3342:148::o:0;11636:194::-;3265:12;:10;:12::i;:::-;3255:22;;:6;;;;;;;;;;:22;;;3247:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4821:2:::1;4878;:13;;;;:::i;:::-;4865:10;:26;;;;:::i;:::-;11689:10;:20;;;;4821:2;4878;:13;;;;:::i;:::-;4865:10;:26;;;;:::i;:::-;11720:14;:22;;;;11774:5;11753:20;;:26;;;;;;;;;;;;;;;;;;11795:27;4821:2;4878;:13;;;;:::i;:::-;4865:10;:26;;;;:::i;:::-;11795:27;;;;;;:::i;:::-;;;;;;;;11636:194::o:0;11839:331::-;11900:10;;;;;;;;;;;11886:24;;:12;:10;:12::i;:::-;:24;;;11878:33;;;;;;11922:20;11943:24;11961:4;11943:9;:24::i;:::-;11922:45;;11994:1;11981:12;:14;11978:73;;;12009:30;12026:12;12009:16;:30::i;:::-;11978:73;12061:18;12080:21;12061:40;;11867:303;;11839:331::o;7813:299::-;3265:12;:10;:12::i;:::-;3255:22;;:6;;;;;;;;;;:22;;;3247:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7911:4:::1;7900:7;:15;;7892:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;8042:4;8032:7;4821:2;4878;:13;;;;:::i;:::-;4865:10;:26;;;;:::i;:::-;8022:17;;;;:::i;:::-;:24;;;;:::i;:::-;8002:17;:44;;;;8062:42;8086:17;;8062:42;;;;;;:::i;:::-;;;;;;;;7813:299:::0;:::o;7471:334::-;7567:4;3265:12;:10;:12::i;:::-;3255:22;;:6;;;;;;;;;;:22;;;3247:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7584:20:::1;7614:12;7607:30;;;7646:4;7607:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7584:68;;7682:11;7667:12;:26;7663:113;;;7717:12;7710:29;;;7740:10;;;;;;;;;;;7752:11;7710:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7663:113;7793:4;7786:11;;;7471:334:::0;;;;:::o;11199:164::-;3265:12;:10;:12::i;:::-;3255:22;;:6;;;;;;;;;;:22;;;3247:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11285:2:::1;11278:3;:9;;11270:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11352:3;11341:8;:14;;;;11199:164:::0;:::o;3128:79::-;3166:7;3193:6;;;;;;;;;;;3186:13;;3128:79;:::o;5050:51::-;;;;:::o;6003:87::-;6042:13;6075:7;;;;;;;;;;;;;;;;;6068:14;;6003:87;:::o;6419:167::-;6497:4;6514:42;6524:12;:10;:12::i;:::-;6538:9;6549:6;6514:9;:42::i;:::-;6574:4;6567:11;;6419:167;;;;:::o;7235:228::-;3265:12;:10;:12::i;:::-;3255:22;;:6;;;;;;;;;;:22;;;3247:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7307:18:::1;7328:21;7307:42;;7377:9;7364:10;:22;7360:96;;;7411:12;:10;:12::i;:::-;7403:30;;:41;7434:9;7403:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;7360:96;7296:167;7235:228:::0;:::o;5108:53::-;;;;:::o;12178:699::-;3265:12;:10;:12::i;:::-;3255:22;;:6;;;;;;;;;;:22;;;3247:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12242:11:::1;;;;;;;;;;;12241:12;12233:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12342:42;12291:15;;:108;;;;;;;;;;;;;;;;;;12410:58;12427:4;12442:15;;;;;;;;;;;4821:2;4878;:13;;;;:::i;:::-;4865:10;:26;;;;:::i;:::-;12410:8;:58::i;:::-;12513:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12495:55;;;12559:4;12566:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12495:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12479:13;;:110;;;;;;;;;;;;;;;;;;12600:15;;;;;;;;;;;:31;;;12639:21;12670:4;12676:24;12694:4;12676:9;:24::i;:::-;12701:1;12703::::0;12705:7:::1;:5;:7::i;:::-;12713:15;12600:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12747:13;;;;;;;;;;;12740:29;;;12778:15;;;;;;;;;;;12796:14;12740:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12836:4;12822:11;;:18;;;;;;;;;;;;;;;;;;12865:4;12851:11;;:18;;;;;;;;;;;;;;;;;;12178:699::o:0;4748:29::-;;;;:::o;11502:126::-;3265:12;:10;:12::i;:::-;3255:22;;:6;;;;;;;;;;:22;;;3247:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11616:4:::1;11606:7;4821:2;4878;:13;;;;:::i;:::-;4865:10;:26;;;;:::i;:::-;11596:17;;;;:::i;:::-;:24;;;;:::i;:::-;11579:14;:41;;;;11502:126:::0;:::o;6594:143::-;6675:7;6702:11;:18;6714:5;6702:18;;;;;;;;;;;;;;;:27;6721:7;6702:27;;;;;;;;;;;;;;;;6695:34;;6594:143;;;;:::o;11029:162::-;3265:12;:10;:12::i;:::-;3255:22;;:6;;;;;;;;;;:22;;;3247:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11114:2:::1;11107:3;:9;;11099:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11180:3;11170:7;:13;;;;11029:162:::0;:::o;883:98::-;936:7;963:10;956:17;;883:98;:::o;8120:335::-;8230:1;8213:19;;:5;:19;;;8205:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8311:1;8292:21;;:7;:21;;;8284:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8393:6;8363:11;:18;8375:5;8363:18;;;;;;;;;;;;;;;:27;8382:7;8363:27;;;;;;;;;;;;;;;:36;;;;8431:7;8415:32;;8424:5;8415:32;;;8440:6;8415:32;;;;;;:::i;:::-;;;;;;;;8120:335;;;:::o;8463:2061::-;8567:1;8551:18;;:4;:18;;;8543:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8644:1;8630:16;;:2;:16;;;8622:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8714:1;8705:6;:10;8697:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8774:17;8820:7;:5;:7::i;:::-;8812:15;;:4;:15;;;;:32;;;;;8837:7;:5;:7::i;:::-;8831:13;;:2;:13;;;;8812:32;8808:1344;;;8865:20;;;;;;;;;;;8861:388;;;8924:15;;;;;;;;;;;8910:30;;:2;:30;;;;:62;;;;;8958:13;;;;;;;;;;;8944:28;;:2;:28;;;;8910:62;8906:328;;;9047:12;9005:28;:39;9034:9;9005:39;;;;;;;;;;;;;;;;:54;8997:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9202:12;9160:28;:39;9189:9;9160:39;;;;;;;;;;;;;;;:54;;;;8906:328;8861:388;9277:13;;;;;;;;;;;9269:21;;:4;:21;;;:55;;;;;9308:15;;;;;;;;;;;9294:30;;:2;:30;;;;9269:55;:82;;;;;9329:18;:22;9348:2;9329:22;;;;;;;;;;;;;;;;;;;;;;;;;9328:23;9269:82;9265:336;;;9384:28;9408:3;9384:19;9395:7;;9384:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;9372:40;;9449:10;;9439:6;:20;;9431:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;9540:14;;9530:6;9514:13;9524:2;9514:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9506:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9265:336;9627:13;;;;;;;;;;;9621:19;;:2;:19;;;:44;;;;;9660:4;9644:21;;:4;:21;;;;9621:44;9617:126;;;9698:29;9723:3;9698:20;9709:8;;9698:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;9686:41;;9617:126;9759:28;9790:24;9808:4;9790:9;:24::i;:::-;9759:55;;9834:6;;;;;;;;;;;9833:7;:30;;;;;9850:13;;;;;;;;;;;9844:19;;:2;:19;;;9833:30;:45;;;;;9867:11;;;;;;;;;;;9833:45;:89;;;;;9905:17;;9882:20;:40;9833:89;9829:312;;;9956:17;;9946:6;:27;9943:183;;9998:35;10015:17;;9998:16;:35::i;:::-;9943:183;;;10082:24;10099:6;10082:16;:24::i;:::-;9943:183;9829:312;8846:1306;8808:1344;10179:1;10167:9;:13;10164:171;;;10224:39;10253:9;10224;:24;10242:4;10224:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10197:9;:24;10215:4;10197:24;;;;;;;;;;;;;;;:66;;;;10306:4;10283:40;;10292:4;10283:40;;;10313:9;10283:40;;;;;;:::i;:::-;;;;;;;;10164:171;10365:27;10385:6;10365:9;:15;10375:4;10365:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10347:9;:15;10357:4;10347:15;;;;;;;;;;;;;;;:45;;;;10419:40;10437:21;10448:9;10437:6;:10;;:21;;;;:::i;:::-;10419:9;:13;10429:2;10419:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10403:9;:13;10413:2;10403:13;;;;;;;;;;;;;;;:56;;;;10490:2;10475:41;;10484:4;10475:41;;;10494:21;10505:9;10494:6;:10;;:21;;;;:::i;:::-;10475:41;;;;;;:::i;:::-;;;;;;;;8532:1992;8463:2061;;;:::o;2020:190::-;2106:7;2139:1;2134;:6;;2142:12;2126:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2166:9;2182:1;2178;:5;;;;:::i;:::-;2166:17;;2201:1;2194:8;;;2020:190;;;;;:::o;10532:489::-;5452:4;5443:6;;:13;;;;;;;;;;;;;;;;;;10610:21:::1;10648:1;10634:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10610:40;;10679:4;10661;10666:1;10661:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10705:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10695:4;10700:1;10695:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10738:62;10755:4;10770:15;;;;;;;;;;;10788:11;10738:8;:62::i;:::-;10811:15;;;;;;;;;;;:66;;;10892:11;10918:1;10934:4;10961:10;;;;;;;;;;;10987:15;10811:202;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10599:422;5488:5:::0;5479:6;;:14;;;;;;;;;;;;;;;;;;10532:489;:::o;2218:246::-;2276:7;2305:1;2300;:6;2296:47;;2330:1;2323:8;;;;2296:47;2353:9;2369:1;2365;:5;;;;:::i;:::-;2353:17;;2398:1;2393;2389;:5;;;;:::i;:::-;:10;2381:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2455:1;2448:8;;;2218:246;;;;;:::o;2472:132::-;2530:7;2557:39;2561:1;2564;2557:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2550:46;;2472:132;;;;:::o;1689:179::-;1747:7;1767:9;1783:1;1779;:5;;;;:::i;:::-;1767:17;;1808:1;1803;:6;;1795:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1859:1;1852:8;;;1689:179;;;;:::o;1876:136::-;1934:7;1961:43;1965:1;1968;1961:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1954:50;;1876:136;;;;:::o;2612:189::-;2698:7;2730:1;2726;:5;2733:12;2718:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2757:9;2773:1;2769;:5;;;;:::i;:::-;2757:17;;2792:1;2785:8;;;2612: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:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;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:182::-;6495:34;6491:1;6483:6;6479:14;6472:58;6355:182;:::o;6543:366::-;6685:3;6706:67;6770:2;6765:3;6706:67;:::i;:::-;6699:74;;6782:93;6871:3;6782:93;:::i;:::-;6900:2;6895:3;6891:12;6884:19;;6543:366;;;:::o;6915:419::-;7081:4;7119:2;7108:9;7104:18;7096:26;;7168:9;7162:4;7158:20;7154:1;7143:9;7139:17;7132:47;7196:131;7322:4;7196:131;:::i;:::-;7188:139;;6915:419;;;:::o;7340:180::-;7388:77;7385:1;7378:88;7485:4;7482:1;7475:15;7509:4;7506:1;7499:15;7526:102;7568:8;7615:5;7612:1;7608:13;7587:34;;7526:102;;;:::o;7634:848::-;7695:5;7702:4;7726:6;7717:15;;7750:5;7741:14;;7764:712;7785:1;7775:8;7772:15;7764:712;;;7880:4;7875:3;7871:14;7865:4;7862:24;7859:50;;;7889:18;;:::i;:::-;7859:50;7939:1;7929:8;7925:16;7922:451;;;8354:4;8347:5;8343:16;8334:25;;7922:451;8404:4;8398;8394:15;8386:23;;8434:32;8457:8;8434:32;:::i;:::-;8422:44;;7764:712;;;7634:848;;;;;;;:::o;8488:1073::-;8542:5;8733:8;8723:40;;8754:1;8745:10;;8756:5;;8723:40;8782:4;8772:36;;8799:1;8790:10;;8801:5;;8772:36;8868:4;8916:1;8911:27;;;;8952:1;8947:191;;;;8861:277;;8911:27;8929:1;8920:10;;8931:5;;;8947:191;8992:3;8982:8;8979:17;8976:43;;;8999:18;;:::i;:::-;8976:43;9048:8;9045:1;9041:16;9032:25;;9083:3;9076:5;9073:14;9070:40;;;9090:18;;:::i;:::-;9070:40;9123:5;;;8861:277;;9247:2;9237:8;9234:16;9228:3;9222:4;9219:13;9215:36;9197:2;9187:8;9184:16;9179:2;9173:4;9170:12;9166:35;9150:111;9147:246;;;9303:8;9297:4;9293:19;9284:28;;9338:3;9331:5;9328:14;9325:40;;;9345:18;;:::i;:::-;9325:40;9378:5;;9147:246;9418:42;9456:3;9446:8;9440:4;9437:1;9418:42;:::i;:::-;9403:57;;;;9492:4;9487:3;9483:14;9476:5;9473:25;9470:51;;;9501:18;;:::i;:::-;9470:51;9550:4;9543:5;9539:16;9530:25;;8488:1073;;;;;;:::o;9567:281::-;9625:5;9649:23;9667:4;9649:23;:::i;:::-;9641:31;;9693:25;9709:8;9693:25;:::i;:::-;9681:37;;9737:104;9774:66;9764:8;9758:4;9737:104;:::i;:::-;9728:113;;9567:281;;;;:::o;9854:410::-;9894:7;9917:20;9935:1;9917:20;:::i;:::-;9912:25;;9951:20;9969:1;9951:20;:::i;:::-;9946:25;;10006:1;10003;9999:9;10028:30;10046:11;10028:30;:::i;:::-;10017:41;;10207:1;10198:7;10194:15;10191:1;10188:22;10168:1;10161:9;10141:83;10118:139;;10237:18;;:::i;:::-;10118:139;9902:362;9854:410;;;;:::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://7e8647bce277b6145dc9b4b8e1a8ef1a0850472c072fd41144d56096aaf0ac8e
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.