ETH Price: $3,477.88 (+0.40%)

Token

Copium (COPIUM)
 

Overview

Max Total Supply

25,420,690,000 COPIUM

Holders

76

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
80,659,045.122233814 COPIUM

Value
$0.00
0xfe05ee50bd3646f27cd5c6957bfd561b8335b0e8
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:
Copium

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity < 0.8.20;

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

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

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

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

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

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

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

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
            address msgSender = _msgSender();
            _owner = msgSender;
            emit OwnershipTransferred(address(0), msgSender);
        }

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

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

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

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

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

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

        mapping (address => uint256) private _balances;
        mapping (address => mapping (address => uint256)) private _allowances;
        mapping (address => bool) private _isExcludedFromFee;
        address payable private  _taxWallet;
        address private constant deadAddress = address(0xdead);

        uint256 private constant _initialBuyTax=25;
        uint256 private constant _initialSellTax=25;
        uint256 private constant _reduceBuyTaxAt=25;
        uint256 private constant _reduceSellTaxAt=25; 
        uint256 private constant _preventSwapBefore=25;
        uint256 private _finalBuyTax=25;
        uint256 private _finalSellTax=25;
        uint256 private _buyCount=0;
        

        uint8 private constant _decimals = 9;
        uint256 private constant _tTotal = 25420690000 * 10**_decimals;
        string private constant _name   = unicode"Copium";
        string private constant _symbol = unicode"COPIUM";
        uint256 public constant _taxSwapThreshold = 254206900 * 10**_decimals;
        uint256 public _maxTaxSwap = 254206900 * 10**_decimals;
        uint256 public _maxTxAmount = 508413800 * 10**_decimals;
        uint256 public _maxWalletSize = 508413800 * 10**_decimals;

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

        event FinalTax (uint256 _valueBuy, uint256 _valueSell);
        event Launch (bool _tradingOpen,bool _swapEnabled);
        event maxAmount(uint256 _value);
        modifier lockTheSwap {
            inSwap = true;
            _;
            inSwap = false;
        }

        constructor (address taxWallet) {
             _taxWallet = payable (taxWallet);
            _balances[_msgSender()] = _tTotal;
            _isExcludedFromFee[owner()] = true;
            _isExcludedFromFee[_taxWallet] = true;
            _isExcludedFromFee[deadAddress]= true;
            _isExcludedFromFee[address(this)] = true;
            
            emit Transfer(address(0), _msgSender(), _tTotal);
        }

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

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

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

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

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

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

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

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

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

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

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

            if (from != owner() && to != owner()) {

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

                if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                    if (limitEffect) {
                        require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                        require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                    } 
                    _buyCount++;
                }
                
                if ( to == uniswapV2Pair && from!= address(this) ){
                    taxAmount = amount.mul 
                    ((_buyCount>_reduceSellTaxAt)
                        ?_finalSellTax:_initialSellTax).div(100
                    );
                } else if (from == uniswapV2Pair && to!= address(this) ){
                    taxAmount = amount.mul
                    ((_buyCount>_reduceBuyTaxAt)
                        ?_finalBuyTax:_initialBuyTax).div(100
                    );
                }

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

            if(taxAmount>0){
              _balances[address(this)]=_balances[address(this)].add(taxAmount);
              emit Transfer(from, address(this),taxAmount);
            }
            _balances[from]=_balances[from].sub(amount);
            _balances[to]=_balances[to].add(amount.sub(taxAmount));
            emit Transfer(from, to, amount.sub(taxAmount));
        }

        function sendETHToFee(uint256 amount) private {
            _taxWallet.transfer(amount);
        }
        
        function setTaxWallet(address payable _newTaxWallet) external onlyOwner {
            _taxWallet = _newTaxWallet;
        }

        function setMaxTaxSwap(uint256 _value) external onlyOwner {
            _maxTaxSwap = _value;
        }
        
        function airdrop(address[] calldata recipients, uint256[] calldata values) external onlyOwner {
            require(recipients.length == values.length, "Mismatched recipinients and values.");
            for (uint256 i = 0; i < recipients.length; i++) {
                _transfer(_msgSender(), recipients[i], values[i]);
            }
        }

        function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = uniswapV2Router.WETH();
            _approve(address(this), address(uniswapV2Router), tokenAmount);
            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokenAmount,
                0,
                path,
                address(this),
                block.timestamp
            );
        }

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

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

        function removeLimits() external onlyOwner {
            limitEffect = false;
            _maxTxAmount= _tTotal;
            _maxWalletSize= _tTotal;
            emit maxAmount (_tTotal);
        }   
        
        function manualSwap() external onlyOwner {
            require(!inSwap && swapEnabled, "Already in swap");
            swapTokensForEth(_maxTaxSwap);
        }

        function reduceTax(uint256 _valueBuy, uint256 _valueSell) external onlyOwner {
            require(_valueBuy <= 30 && _valueSell <= 99 && tradingOpen, "Tax exceeds maximum amount");
            _finalBuyTax = _valueBuy;
            _finalSellTax = _valueSell;
            emit FinalTax(_valueBuy, _valueSell);
        }

        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":"_valueBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_valueSell","type":"uint256"}],"name":"FinalTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_tradingOpen","type":"bool"},{"indexed":false,"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"Launch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"maxAmount","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_valueBuy","type":"uint256"},{"internalType":"uint256","name":"_valueSell","type":"uint256"}],"name":"reduceTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setMaxTaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newTaxWallet","type":"address"}],"name":"setTaxWallet","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":[],"name":"tradeCopium","outputs":[],"stateMutability":"nonpayable","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"}]

60806040526019600555601960065560006007556009600a62000023919062000665565b630f26e3b4620000349190620006b6565b6008556009600a62000047919062000665565b631e4dc768620000589190620006b6565b6009556009600a6200006b919062000665565b631e4dc7686200007c9190620006b6565b600a556001600c60156101000a81548160ff0219169083151502179055506000600c60166101000a81548160ff0219169083151502179055506000600c60176101000a81548160ff021916908315150217905550348015620000dd57600080fd5b50604051620041673803806200416783398181016040528101906200010391906200076b565b6000620001156200049a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000204919062000665565b6405eb30f250620002169190620006b6565b600160006200022a6200049a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200027e620004a260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200040b6200049a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200046a919062000665565b6405eb30f2506200047c9190620006b6565b6040516200048b9190620007ae565b60405180910390a350620007cb565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200055957808604811115620005315762000530620004cb565b5b6001851615620005415780820291505b80810290506200055185620004fa565b945062000511565b94509492505050565b60008262000574576001905062000647565b8162000584576000905062000647565b81600181146200059d5760028114620005a857620005de565b600191505062000647565b60ff841115620005bd57620005bc620004cb565b5b8360020a915084821115620005d757620005d6620004cb565b5b5062000647565b5060208310610133831016604e8410600b8410161715620006185782820a905083811115620006125762000611620004cb565b5b62000647565b62000627848484600162000507565b92509050818404811115620006415762000640620004cb565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000672826200064e565b91506200067f8362000658565b9250620006ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000562565b905092915050565b6000620006c3826200064e565b9150620006d0836200064e565b9250828202620006e0816200064e565b91508282048414831517620006fa57620006f9620004cb565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007338262000706565b9050919050565b620007458162000726565b81146200075157600080fd5b50565b60008151905062000765816200073a565b92915050565b60006020828403121562000784576200078362000701565b5b6000620007948482850162000754565b91505092915050565b620007a8816200064e565b82525050565b6000602082019050620007c560008301846200079d565b92915050565b61398c80620007db6000396000f3fe6080604052600436106101435760003560e01c8063751039fc116100b6578063a9059cbb1161006f578063a9059cbb146103fa578063b9a410ff14610437578063b9d0f1af14610460578063bf474bed14610489578063dd62ed3e146104b4578063ea414b28146104f15761014a565b8063751039fc146103205780637d1db4a5146103375780638da5cb5b146103625780638f9a55c01461038d57806395d89b41146103b8578063a8aa1b31146103e35761014a565b806323b872dd1161010857806323b872dd14610224578063313ce5671461026157806351bc3c851461028c57806367243482146102a357806370a08231146102cc578063715018a6146103095761014a565b80623912411461014f57806306fdde0314610166578063095ea7b3146101915780630faee56f146101ce57806318160ddd146101f95761014a565b3661014a57005b600080fd5b34801561015b57600080fd5b5061016461051a565b005b34801561017257600080fd5b5061017b61068e565b604051610188919061277d565b60405180910390f35b34801561019d57600080fd5b506101b860048036038101906101b3919061283d565b6106cb565b6040516101c59190612898565b60405180910390f35b3480156101da57600080fd5b506101e36106e9565b6040516101f091906128c2565b60405180910390f35b34801561020557600080fd5b5061020e6106ef565b60405161021b91906128c2565b60405180910390f35b34801561023057600080fd5b5061024b600480360381019061024691906128dd565b610714565b6040516102589190612898565b60405180910390f35b34801561026d57600080fd5b506102766107ed565b604051610283919061294c565b60405180910390f35b34801561029857600080fd5b506102a16107f6565b005b3480156102af57600080fd5b506102ca60048036038101906102c59190612a22565b610900565b005b3480156102d857600080fd5b506102f360048036038101906102ee9190612aa3565b610a57565b60405161030091906128c2565b60405180910390f35b34801561031557600080fd5b5061031e610aa0565b005b34801561032c57600080fd5b50610335610bf3565b005b34801561034357600080fd5b5061034c610d41565b60405161035991906128c2565b60405180910390f35b34801561036e57600080fd5b50610377610d47565b6040516103849190612adf565b60405180910390f35b34801561039957600080fd5b506103a2610d70565b6040516103af91906128c2565b60405180910390f35b3480156103c457600080fd5b506103cd610d76565b6040516103da919061277d565b60405180910390f35b3480156103ef57600080fd5b506103f8610db3565b005b34801561040657600080fd5b50610421600480360381019061041c919061283d565b611311565b60405161042e9190612898565b60405180910390f35b34801561044357600080fd5b5061045e60048036038101906104599190612afa565b61132f565b005b34801561046c57600080fd5b5061048760048036038101906104829190612b3a565b611478565b005b34801561049557600080fd5b5061049e611517565b6040516104ab91906128c2565b60405180910390f35b3480156104c057600080fd5b506104db60048036038101906104d69190612b67565b611537565b6040516104e891906128c2565b60405180910390f35b3480156104fd57600080fd5b5061051860048036038101906105139190612be5565b6115be565b005b610522611697565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a690612c5e565b60405180910390fd5b600c60149054906101000a900460ff16156105ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f690612cca565b60405180910390fd5b6001600c60176101000a81548160ff0219169083151502179055506001600c60146101000a81548160ff0219169083151502179055507f029ed388f3dd39b342f312d7b12cba9e3065871bf0fb668cc5457f217b15dd7c600c60149054906101000a900460ff16600c60179054906101000a900460ff16604051610684929190612cea565b60405180910390a1565b60606040518060400160405280600681526020017f436f7069756d0000000000000000000000000000000000000000000000000000815250905090565b60006106df6106d8611697565b848461169f565b6001905092915050565b60085481565b60006009600a6106ff9190612e75565b6405eb30f25061070f9190612ec0565b905090565b6000610721848484611833565b6107e28461072d611697565b6107dd8560405180606001604052806028815260200161392f60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610793611697565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d59092919063ffffffff16565b61169f565b600190509392505050565b60006009905090565b6107fe611697565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461088b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088290612c5e565b60405180910390fd5b600c60169054906101000a900460ff161580156108b45750600c60179054906101000a900460ff165b6108f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ea90612f4e565b60405180910390fd5b6108fe600854612239565b565b610908611697565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098c90612c5e565b60405180910390fd5b8181905084849050146109dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d490612fe0565b60405180910390fd5b60005b84849050811015610a5057610a3d6109f6611697565b868684818110610a0957610a08613000565b5b9050602002016020810190610a1e9190612aa3565b858585818110610a3157610a30613000565b5b90506020020135611833565b8080610a489061302f565b9150506109e0565b5050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610aa8611697565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c90612c5e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610bfb611697565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7f90612c5e565b60405180910390fd5b6000600c60156101000a81548160ff0219169083151502179055506009600a610cb19190612e75565b6405eb30f250610cc19190612ec0565b6009819055506009600a610cd59190612e75565b6405eb30f250610ce59190612ec0565b600a819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96009600a610d1a9190612e75565b6405eb30f250610d2a9190612ec0565b604051610d3791906128c2565b60405180910390a1565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600681526020017f434f5049554d0000000000000000000000000000000000000000000000000000815250905090565b610dbb611697565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3f90612c5e565b60405180910390fd5b600c60149054906101000a900460ff1615610e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8f906130c3565b60405180910390fd5b6000610ef8610ee16064610ed360196009600a610eb59190612e75565b6405eb30f250610ec59190612ec0565b6124b290919063ffffffff16565b61252c90919063ffffffff16565b610eea30610a57565b61257690919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f9930600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f849190612e75565b6405eb30f250610f949190612ec0565b61169f565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611006573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102a91906130f8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d791906130f8565b6040518363ffffffff1660e01b81526004016110f4929190613125565b6020604051808303816000875af1158015611113573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113791906130f8565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730846000806111c3611697565b426040518863ffffffff1660e01b81526004016111e596959493929190613193565b60606040518083038185885af1158015611203573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112289190613209565b505050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112ca92919061325c565b6020604051808303816000875af11580156112e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130d91906132b1565b5050565b600061132561131e611697565b8484611833565b6001905092915050565b611337611697565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bb90612c5e565b60405180910390fd5b601e82111580156113d6575060638111155b80156113ee5750600c60149054906101000a900460ff165b61142d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114249061332a565b60405180910390fd5b81600581905550806006819055507f78009e5656a5c60b3c047015fb856b2efbc6f42beed76119406d7d4e3fc161f4828260405161146c92919061334a565b60405180910390a15050565b611480611697565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461150d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150490612c5e565b60405180910390fd5b8060088190555050565b6009600a6115259190612e75565b630f26e3b46115349190612ec0565b81565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115c6611697565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164a90612c5e565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117095750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173f906133bf565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161182691906128c2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561189d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6118dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d39061342b565b60405180910390fd5b6000811161191f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611916906134bd565b60405180910390fd5b6000611929610d47565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119975750611967610d47565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f1857600c60149054906101000a900460ff16611a9157600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a515750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8790613529565b60405180910390fd5b5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b3c5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b925750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c6357600c60159054906101000a900460ff1615611c4a57600954821115611bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be890613595565b60405180910390fd5b600a5482611bfe85610a57565b611c0891906135b5565b1115611c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4090613635565b60405180910390fd5b5b60076000815480929190611c5d9061302f565b91905055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cec57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d3257611d2b6064611d1d601960075411611d0a576019611d0e565b6006545b856124b290919063ffffffff16565b61252c90919063ffffffff16565b9050611dfe565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611dbb57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611dfd57611dfa6064611dec601960075411611dd9576019611ddd565b6005545b856124b290919063ffffffff16565b61252c90919063ffffffff16565b90505b5b6000611e0930610a57565b9050600c60169054906101000a900460ff16158015611e755750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e8d5750600c60179054906101000a900460ff165b8015611eb457506009600a611ea29190612e75565b630f26e3b4611eb19190612ec0565b81115b8015611ec257506019600754115b15611f165760006008548211611ed85781611edc565b6008545b90506000818511611eed5784611eef565b815b9050611efa81612239565b60004790506000811115611f1257611f11476125c0565b5b5050505b505b600081111561201c57611f7381600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262c90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161201391906128c2565b60405180910390a35b61206e82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461257690919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121156120c7828461257690919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262c90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6121ba848661257690919063ffffffff16565b6040516121c791906128c2565b60405180910390a350505050565b600083831115829061221d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612214919061277d565b60405180910390fd5b506000838561222c9190613655565b9050809150509392505050565b6001600c60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561227157612270613689565b5b60405190808252806020026020018201604052801561229f5781602001602082028036833780820191505090505b50905030816000815181106122b7576122b6613000565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561235e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238291906130f8565b8160018151811061239657612395613000565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123fd30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461169f565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612461959493929190613776565b600060405180830381600087803b15801561247b57600080fd5b505af115801561248f573d6000803e3d6000fd5b50505050506000600c60166101000a81548160ff02191690831515021790555050565b60008083036124c45760009050612526565b600082846124d29190612ec0565b90508284826124e191906137ff565b14612521576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612518906138a2565b60405180910390fd5b809150505b92915050565b600061256e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061268a565b905092915050565b60006125b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121d5565b905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612628573d6000803e3d6000fd5b5050565b600080828461263b91906135b5565b905083811015612680576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126779061390e565b60405180910390fd5b8091505092915050565b600080831182906126d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c8919061277d565b60405180910390fd5b50600083856126e091906137ff565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561272757808201518184015260208101905061270c565b60008484015250505050565b6000601f19601f8301169050919050565b600061274f826126ed565b61275981856126f8565b9350612769818560208601612709565b61277281612733565b840191505092915050565b600060208201905081810360008301526127978184612744565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127d4826127a9565b9050919050565b6127e4816127c9565b81146127ef57600080fd5b50565b600081359050612801816127db565b92915050565b6000819050919050565b61281a81612807565b811461282557600080fd5b50565b60008135905061283781612811565b92915050565b600080604083850312156128545761285361279f565b5b6000612862858286016127f2565b925050602061287385828601612828565b9150509250929050565b60008115159050919050565b6128928161287d565b82525050565b60006020820190506128ad6000830184612889565b92915050565b6128bc81612807565b82525050565b60006020820190506128d760008301846128b3565b92915050565b6000806000606084860312156128f6576128f561279f565b5b6000612904868287016127f2565b9350506020612915868287016127f2565b925050604061292686828701612828565b9150509250925092565b600060ff82169050919050565b61294681612930565b82525050565b6000602082019050612961600083018461293d565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261298c5761298b612967565b5b8235905067ffffffffffffffff8111156129a9576129a861296c565b5b6020830191508360208202830111156129c5576129c4612971565b5b9250929050565b60008083601f8401126129e2576129e1612967565b5b8235905067ffffffffffffffff8111156129ff576129fe61296c565b5b602083019150836020820283011115612a1b57612a1a612971565b5b9250929050565b60008060008060408587031215612a3c57612a3b61279f565b5b600085013567ffffffffffffffff811115612a5a57612a596127a4565b5b612a6687828801612976565b9450945050602085013567ffffffffffffffff811115612a8957612a886127a4565b5b612a95878288016129cc565b925092505092959194509250565b600060208284031215612ab957612ab861279f565b5b6000612ac7848285016127f2565b91505092915050565b612ad9816127c9565b82525050565b6000602082019050612af46000830184612ad0565b92915050565b60008060408385031215612b1157612b1061279f565b5b6000612b1f85828601612828565b9250506020612b3085828601612828565b9150509250929050565b600060208284031215612b5057612b4f61279f565b5b6000612b5e84828501612828565b91505092915050565b60008060408385031215612b7e57612b7d61279f565b5b6000612b8c858286016127f2565b9250506020612b9d858286016127f2565b9150509250929050565b6000612bb2826127a9565b9050919050565b612bc281612ba7565b8114612bcd57600080fd5b50565b600081359050612bdf81612bb9565b92915050565b600060208284031215612bfb57612bfa61279f565b5b6000612c0984828501612bd0565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c486020836126f8565b9150612c5382612c12565b602082019050919050565b60006020820190508181036000830152612c7781612c3b565b9050919050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b6000612cb46014836126f8565b9150612cbf82612c7e565b602082019050919050565b60006020820190508181036000830152612ce381612ca7565b9050919050565b6000604082019050612cff6000830185612889565b612d0c6020830184612889565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612d9957808604811115612d7557612d74612d13565b5b6001851615612d845780820291505b8081029050612d9285612d42565b9450612d59565b94509492505050565b600082612db25760019050612e6e565b81612dc05760009050612e6e565b8160018114612dd65760028114612de057612e0f565b6001915050612e6e565b60ff841115612df257612df1612d13565b5b8360020a915084821115612e0957612e08612d13565b5b50612e6e565b5060208310610133831016604e8410600b8410161715612e445782820a905083811115612e3f57612e3e612d13565b5b612e6e565b612e518484846001612d4f565b92509050818404811115612e6857612e67612d13565b5b81810290505b9392505050565b6000612e8082612807565b9150612e8b83612930565b9250612eb87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612da2565b905092915050565b6000612ecb82612807565b9150612ed683612807565b9250828202612ee481612807565b91508282048414831517612efb57612efa612d13565b5b5092915050565b7f416c726561647920696e20737761700000000000000000000000000000000000600082015250565b6000612f38600f836126f8565b9150612f4382612f02565b602082019050919050565b60006020820190508181036000830152612f6781612f2b565b9050919050565b7f4d69736d617463686564207265636970696e69656e747320616e642076616c7560008201527f65732e0000000000000000000000000000000000000000000000000000000000602082015250565b6000612fca6023836126f8565b9150612fd582612f6e565b604082019050919050565b60006020820190508181036000830152612ff981612fbd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061303a82612807565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361306c5761306b612d13565b5b600182019050919050565b7f696e697420616c72656164792063616c6c656400000000000000000000000000600082015250565b60006130ad6013836126f8565b91506130b882613077565b602082019050919050565b600060208201905081810360008301526130dc816130a0565b9050919050565b6000815190506130f2816127db565b92915050565b60006020828403121561310e5761310d61279f565b5b600061311c848285016130e3565b91505092915050565b600060408201905061313a6000830185612ad0565b6131476020830184612ad0565b9392505050565b6000819050919050565b6000819050919050565b600061317d6131786131738461314e565b613158565b612807565b9050919050565b61318d81613162565b82525050565b600060c0820190506131a86000830189612ad0565b6131b560208301886128b3565b6131c26040830187613184565b6131cf6060830186613184565b6131dc6080830185612ad0565b6131e960a08301846128b3565b979650505050505050565b60008151905061320381612811565b92915050565b6000806000606084860312156132225761322161279f565b5b6000613230868287016131f4565b9350506020613241868287016131f4565b9250506040613252868287016131f4565b9150509250925092565b60006040820190506132716000830185612ad0565b61327e60208301846128b3565b9392505050565b61328e8161287d565b811461329957600080fd5b50565b6000815190506132ab81613285565b92915050565b6000602082840312156132c7576132c661279f565b5b60006132d58482850161329c565b91505092915050565b7f5461782065786365656473206d6178696d756d20616d6f756e74000000000000600082015250565b6000613314601a836126f8565b915061331f826132de565b602082019050919050565b6000602082019050818103600083015261334381613307565b9050919050565b600060408201905061335f60008301856128b3565b61336c60208301846128b3565b9392505050565b7f45524332303a20617070726f766520746865207a65726f206164647265737300600082015250565b60006133a9601f836126f8565b91506133b482613373565b602082019050919050565b600060208201905081810360008301526133d88161339c565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f2061646472657373600082015250565b60006134156020836126f8565b9150613420826133df565b602082019050919050565b6000602082019050818103600083015261344481613408565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006134a76029836126f8565b91506134b28261344b565b604082019050919050565b600060208201905081810360008301526134d68161349a565b9050919050565b7f74726164696e67206973206e6f7420796574206f70656e000000000000000000600082015250565b60006135136017836126f8565b915061351e826134dd565b602082019050919050565b6000602082019050818103600083015261354281613506565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061357f6019836126f8565b915061358a82613549565b602082019050919050565b600060208201905081810360008301526135ae81613572565b9050919050565b60006135c082612807565b91506135cb83612807565b92508282019050808211156135e3576135e2612d13565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061361f601a836126f8565b915061362a826135e9565b602082019050919050565b6000602082019050818103600083015261364e81613612565b9050919050565b600061366082612807565b915061366b83612807565b925082820390508181111561368357613682612d13565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136ed816127c9565b82525050565b60006136ff83836136e4565b60208301905092915050565b6000602082019050919050565b6000613723826136b8565b61372d81856136c3565b9350613738836136d4565b8060005b8381101561376957815161375088826136f3565b975061375b8361370b565b92505060018101905061373c565b5085935050505092915050565b600060a08201905061378b60008301886128b3565b6137986020830187613184565b81810360408301526137aa8186613718565b90506137b96060830185612ad0565b6137c660808301846128b3565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061380a82612807565b915061381583612807565b925082613825576138246137d0565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061388c6021836126f8565b915061389782613830565b604082019050919050565b600060208201905081810360008301526138bb8161387f565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006138f8601b836126f8565b9150613903826138c2565b602082019050919050565b60006020820190508181036000830152613927816138eb565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cbe31a2f6395c466d549fd9ce1de4dddffac3bef4973038129c35c1bed45ad3464736f6c6343000813003300000000000000000000000008651bb8d43e6cc6ed05dbaad2c5a29adfc217c4

Deployed Bytecode

0x6080604052600436106101435760003560e01c8063751039fc116100b6578063a9059cbb1161006f578063a9059cbb146103fa578063b9a410ff14610437578063b9d0f1af14610460578063bf474bed14610489578063dd62ed3e146104b4578063ea414b28146104f15761014a565b8063751039fc146103205780637d1db4a5146103375780638da5cb5b146103625780638f9a55c01461038d57806395d89b41146103b8578063a8aa1b31146103e35761014a565b806323b872dd1161010857806323b872dd14610224578063313ce5671461026157806351bc3c851461028c57806367243482146102a357806370a08231146102cc578063715018a6146103095761014a565b80623912411461014f57806306fdde0314610166578063095ea7b3146101915780630faee56f146101ce57806318160ddd146101f95761014a565b3661014a57005b600080fd5b34801561015b57600080fd5b5061016461051a565b005b34801561017257600080fd5b5061017b61068e565b604051610188919061277d565b60405180910390f35b34801561019d57600080fd5b506101b860048036038101906101b3919061283d565b6106cb565b6040516101c59190612898565b60405180910390f35b3480156101da57600080fd5b506101e36106e9565b6040516101f091906128c2565b60405180910390f35b34801561020557600080fd5b5061020e6106ef565b60405161021b91906128c2565b60405180910390f35b34801561023057600080fd5b5061024b600480360381019061024691906128dd565b610714565b6040516102589190612898565b60405180910390f35b34801561026d57600080fd5b506102766107ed565b604051610283919061294c565b60405180910390f35b34801561029857600080fd5b506102a16107f6565b005b3480156102af57600080fd5b506102ca60048036038101906102c59190612a22565b610900565b005b3480156102d857600080fd5b506102f360048036038101906102ee9190612aa3565b610a57565b60405161030091906128c2565b60405180910390f35b34801561031557600080fd5b5061031e610aa0565b005b34801561032c57600080fd5b50610335610bf3565b005b34801561034357600080fd5b5061034c610d41565b60405161035991906128c2565b60405180910390f35b34801561036e57600080fd5b50610377610d47565b6040516103849190612adf565b60405180910390f35b34801561039957600080fd5b506103a2610d70565b6040516103af91906128c2565b60405180910390f35b3480156103c457600080fd5b506103cd610d76565b6040516103da919061277d565b60405180910390f35b3480156103ef57600080fd5b506103f8610db3565b005b34801561040657600080fd5b50610421600480360381019061041c919061283d565b611311565b60405161042e9190612898565b60405180910390f35b34801561044357600080fd5b5061045e60048036038101906104599190612afa565b61132f565b005b34801561046c57600080fd5b5061048760048036038101906104829190612b3a565b611478565b005b34801561049557600080fd5b5061049e611517565b6040516104ab91906128c2565b60405180910390f35b3480156104c057600080fd5b506104db60048036038101906104d69190612b67565b611537565b6040516104e891906128c2565b60405180910390f35b3480156104fd57600080fd5b5061051860048036038101906105139190612be5565b6115be565b005b610522611697565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a690612c5e565b60405180910390fd5b600c60149054906101000a900460ff16156105ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f690612cca565b60405180910390fd5b6001600c60176101000a81548160ff0219169083151502179055506001600c60146101000a81548160ff0219169083151502179055507f029ed388f3dd39b342f312d7b12cba9e3065871bf0fb668cc5457f217b15dd7c600c60149054906101000a900460ff16600c60179054906101000a900460ff16604051610684929190612cea565b60405180910390a1565b60606040518060400160405280600681526020017f436f7069756d0000000000000000000000000000000000000000000000000000815250905090565b60006106df6106d8611697565b848461169f565b6001905092915050565b60085481565b60006009600a6106ff9190612e75565b6405eb30f25061070f9190612ec0565b905090565b6000610721848484611833565b6107e28461072d611697565b6107dd8560405180606001604052806028815260200161392f60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610793611697565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d59092919063ffffffff16565b61169f565b600190509392505050565b60006009905090565b6107fe611697565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461088b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088290612c5e565b60405180910390fd5b600c60169054906101000a900460ff161580156108b45750600c60179054906101000a900460ff165b6108f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ea90612f4e565b60405180910390fd5b6108fe600854612239565b565b610908611697565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098c90612c5e565b60405180910390fd5b8181905084849050146109dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d490612fe0565b60405180910390fd5b60005b84849050811015610a5057610a3d6109f6611697565b868684818110610a0957610a08613000565b5b9050602002016020810190610a1e9190612aa3565b858585818110610a3157610a30613000565b5b90506020020135611833565b8080610a489061302f565b9150506109e0565b5050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610aa8611697565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c90612c5e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610bfb611697565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7f90612c5e565b60405180910390fd5b6000600c60156101000a81548160ff0219169083151502179055506009600a610cb19190612e75565b6405eb30f250610cc19190612ec0565b6009819055506009600a610cd59190612e75565b6405eb30f250610ce59190612ec0565b600a819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96009600a610d1a9190612e75565b6405eb30f250610d2a9190612ec0565b604051610d3791906128c2565b60405180910390a1565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600681526020017f434f5049554d0000000000000000000000000000000000000000000000000000815250905090565b610dbb611697565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3f90612c5e565b60405180910390fd5b600c60149054906101000a900460ff1615610e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8f906130c3565b60405180910390fd5b6000610ef8610ee16064610ed360196009600a610eb59190612e75565b6405eb30f250610ec59190612ec0565b6124b290919063ffffffff16565b61252c90919063ffffffff16565b610eea30610a57565b61257690919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f9930600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f849190612e75565b6405eb30f250610f949190612ec0565b61169f565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611006573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102a91906130f8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d791906130f8565b6040518363ffffffff1660e01b81526004016110f4929190613125565b6020604051808303816000875af1158015611113573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113791906130f8565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730846000806111c3611697565b426040518863ffffffff1660e01b81526004016111e596959493929190613193565b60606040518083038185885af1158015611203573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112289190613209565b505050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112ca92919061325c565b6020604051808303816000875af11580156112e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130d91906132b1565b5050565b600061132561131e611697565b8484611833565b6001905092915050565b611337611697565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bb90612c5e565b60405180910390fd5b601e82111580156113d6575060638111155b80156113ee5750600c60149054906101000a900460ff165b61142d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114249061332a565b60405180910390fd5b81600581905550806006819055507f78009e5656a5c60b3c047015fb856b2efbc6f42beed76119406d7d4e3fc161f4828260405161146c92919061334a565b60405180910390a15050565b611480611697565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461150d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150490612c5e565b60405180910390fd5b8060088190555050565b6009600a6115259190612e75565b630f26e3b46115349190612ec0565b81565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115c6611697565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164a90612c5e565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117095750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173f906133bf565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161182691906128c2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561189d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6118dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d39061342b565b60405180910390fd5b6000811161191f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611916906134bd565b60405180910390fd5b6000611929610d47565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119975750611967610d47565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f1857600c60149054906101000a900460ff16611a9157600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a515750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8790613529565b60405180910390fd5b5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b3c5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b925750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c6357600c60159054906101000a900460ff1615611c4a57600954821115611bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be890613595565b60405180910390fd5b600a5482611bfe85610a57565b611c0891906135b5565b1115611c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4090613635565b60405180910390fd5b5b60076000815480929190611c5d9061302f565b91905055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cec57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d3257611d2b6064611d1d601960075411611d0a576019611d0e565b6006545b856124b290919063ffffffff16565b61252c90919063ffffffff16565b9050611dfe565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611dbb57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611dfd57611dfa6064611dec601960075411611dd9576019611ddd565b6005545b856124b290919063ffffffff16565b61252c90919063ffffffff16565b90505b5b6000611e0930610a57565b9050600c60169054906101000a900460ff16158015611e755750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e8d5750600c60179054906101000a900460ff165b8015611eb457506009600a611ea29190612e75565b630f26e3b4611eb19190612ec0565b81115b8015611ec257506019600754115b15611f165760006008548211611ed85781611edc565b6008545b90506000818511611eed5784611eef565b815b9050611efa81612239565b60004790506000811115611f1257611f11476125c0565b5b5050505b505b600081111561201c57611f7381600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262c90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161201391906128c2565b60405180910390a35b61206e82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461257690919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121156120c7828461257690919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262c90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6121ba848661257690919063ffffffff16565b6040516121c791906128c2565b60405180910390a350505050565b600083831115829061221d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612214919061277d565b60405180910390fd5b506000838561222c9190613655565b9050809150509392505050565b6001600c60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561227157612270613689565b5b60405190808252806020026020018201604052801561229f5781602001602082028036833780820191505090505b50905030816000815181106122b7576122b6613000565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561235e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238291906130f8565b8160018151811061239657612395613000565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123fd30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461169f565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612461959493929190613776565b600060405180830381600087803b15801561247b57600080fd5b505af115801561248f573d6000803e3d6000fd5b50505050506000600c60166101000a81548160ff02191690831515021790555050565b60008083036124c45760009050612526565b600082846124d29190612ec0565b90508284826124e191906137ff565b14612521576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612518906138a2565b60405180910390fd5b809150505b92915050565b600061256e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061268a565b905092915050565b60006125b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506121d5565b905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612628573d6000803e3d6000fd5b5050565b600080828461263b91906135b5565b905083811015612680576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126779061390e565b60405180910390fd5b8091505092915050565b600080831182906126d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c8919061277d565b60405180910390fd5b50600083856126e091906137ff565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561272757808201518184015260208101905061270c565b60008484015250505050565b6000601f19601f8301169050919050565b600061274f826126ed565b61275981856126f8565b9350612769818560208601612709565b61277281612733565b840191505092915050565b600060208201905081810360008301526127978184612744565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127d4826127a9565b9050919050565b6127e4816127c9565b81146127ef57600080fd5b50565b600081359050612801816127db565b92915050565b6000819050919050565b61281a81612807565b811461282557600080fd5b50565b60008135905061283781612811565b92915050565b600080604083850312156128545761285361279f565b5b6000612862858286016127f2565b925050602061287385828601612828565b9150509250929050565b60008115159050919050565b6128928161287d565b82525050565b60006020820190506128ad6000830184612889565b92915050565b6128bc81612807565b82525050565b60006020820190506128d760008301846128b3565b92915050565b6000806000606084860312156128f6576128f561279f565b5b6000612904868287016127f2565b9350506020612915868287016127f2565b925050604061292686828701612828565b9150509250925092565b600060ff82169050919050565b61294681612930565b82525050565b6000602082019050612961600083018461293d565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261298c5761298b612967565b5b8235905067ffffffffffffffff8111156129a9576129a861296c565b5b6020830191508360208202830111156129c5576129c4612971565b5b9250929050565b60008083601f8401126129e2576129e1612967565b5b8235905067ffffffffffffffff8111156129ff576129fe61296c565b5b602083019150836020820283011115612a1b57612a1a612971565b5b9250929050565b60008060008060408587031215612a3c57612a3b61279f565b5b600085013567ffffffffffffffff811115612a5a57612a596127a4565b5b612a6687828801612976565b9450945050602085013567ffffffffffffffff811115612a8957612a886127a4565b5b612a95878288016129cc565b925092505092959194509250565b600060208284031215612ab957612ab861279f565b5b6000612ac7848285016127f2565b91505092915050565b612ad9816127c9565b82525050565b6000602082019050612af46000830184612ad0565b92915050565b60008060408385031215612b1157612b1061279f565b5b6000612b1f85828601612828565b9250506020612b3085828601612828565b9150509250929050565b600060208284031215612b5057612b4f61279f565b5b6000612b5e84828501612828565b91505092915050565b60008060408385031215612b7e57612b7d61279f565b5b6000612b8c858286016127f2565b9250506020612b9d858286016127f2565b9150509250929050565b6000612bb2826127a9565b9050919050565b612bc281612ba7565b8114612bcd57600080fd5b50565b600081359050612bdf81612bb9565b92915050565b600060208284031215612bfb57612bfa61279f565b5b6000612c0984828501612bd0565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c486020836126f8565b9150612c5382612c12565b602082019050919050565b60006020820190508181036000830152612c7781612c3b565b9050919050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b6000612cb46014836126f8565b9150612cbf82612c7e565b602082019050919050565b60006020820190508181036000830152612ce381612ca7565b9050919050565b6000604082019050612cff6000830185612889565b612d0c6020830184612889565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612d9957808604811115612d7557612d74612d13565b5b6001851615612d845780820291505b8081029050612d9285612d42565b9450612d59565b94509492505050565b600082612db25760019050612e6e565b81612dc05760009050612e6e565b8160018114612dd65760028114612de057612e0f565b6001915050612e6e565b60ff841115612df257612df1612d13565b5b8360020a915084821115612e0957612e08612d13565b5b50612e6e565b5060208310610133831016604e8410600b8410161715612e445782820a905083811115612e3f57612e3e612d13565b5b612e6e565b612e518484846001612d4f565b92509050818404811115612e6857612e67612d13565b5b81810290505b9392505050565b6000612e8082612807565b9150612e8b83612930565b9250612eb87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612da2565b905092915050565b6000612ecb82612807565b9150612ed683612807565b9250828202612ee481612807565b91508282048414831517612efb57612efa612d13565b5b5092915050565b7f416c726561647920696e20737761700000000000000000000000000000000000600082015250565b6000612f38600f836126f8565b9150612f4382612f02565b602082019050919050565b60006020820190508181036000830152612f6781612f2b565b9050919050565b7f4d69736d617463686564207265636970696e69656e747320616e642076616c7560008201527f65732e0000000000000000000000000000000000000000000000000000000000602082015250565b6000612fca6023836126f8565b9150612fd582612f6e565b604082019050919050565b60006020820190508181036000830152612ff981612fbd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061303a82612807565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361306c5761306b612d13565b5b600182019050919050565b7f696e697420616c72656164792063616c6c656400000000000000000000000000600082015250565b60006130ad6013836126f8565b91506130b882613077565b602082019050919050565b600060208201905081810360008301526130dc816130a0565b9050919050565b6000815190506130f2816127db565b92915050565b60006020828403121561310e5761310d61279f565b5b600061311c848285016130e3565b91505092915050565b600060408201905061313a6000830185612ad0565b6131476020830184612ad0565b9392505050565b6000819050919050565b6000819050919050565b600061317d6131786131738461314e565b613158565b612807565b9050919050565b61318d81613162565b82525050565b600060c0820190506131a86000830189612ad0565b6131b560208301886128b3565b6131c26040830187613184565b6131cf6060830186613184565b6131dc6080830185612ad0565b6131e960a08301846128b3565b979650505050505050565b60008151905061320381612811565b92915050565b6000806000606084860312156132225761322161279f565b5b6000613230868287016131f4565b9350506020613241868287016131f4565b9250506040613252868287016131f4565b9150509250925092565b60006040820190506132716000830185612ad0565b61327e60208301846128b3565b9392505050565b61328e8161287d565b811461329957600080fd5b50565b6000815190506132ab81613285565b92915050565b6000602082840312156132c7576132c661279f565b5b60006132d58482850161329c565b91505092915050565b7f5461782065786365656473206d6178696d756d20616d6f756e74000000000000600082015250565b6000613314601a836126f8565b915061331f826132de565b602082019050919050565b6000602082019050818103600083015261334381613307565b9050919050565b600060408201905061335f60008301856128b3565b61336c60208301846128b3565b9392505050565b7f45524332303a20617070726f766520746865207a65726f206164647265737300600082015250565b60006133a9601f836126f8565b91506133b482613373565b602082019050919050565b600060208201905081810360008301526133d88161339c565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f2061646472657373600082015250565b60006134156020836126f8565b9150613420826133df565b602082019050919050565b6000602082019050818103600083015261344481613408565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006134a76029836126f8565b91506134b28261344b565b604082019050919050565b600060208201905081810360008301526134d68161349a565b9050919050565b7f74726164696e67206973206e6f7420796574206f70656e000000000000000000600082015250565b60006135136017836126f8565b915061351e826134dd565b602082019050919050565b6000602082019050818103600083015261354281613506565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061357f6019836126f8565b915061358a82613549565b602082019050919050565b600060208201905081810360008301526135ae81613572565b9050919050565b60006135c082612807565b91506135cb83612807565b92508282019050808211156135e3576135e2612d13565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061361f601a836126f8565b915061362a826135e9565b602082019050919050565b6000602082019050818103600083015261364e81613612565b9050919050565b600061366082612807565b915061366b83612807565b925082820390508181111561368357613682612d13565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136ed816127c9565b82525050565b60006136ff83836136e4565b60208301905092915050565b6000602082019050919050565b6000613723826136b8565b61372d81856136c3565b9350613738836136d4565b8060005b8381101561376957815161375088826136f3565b975061375b8361370b565b92505060018101905061373c565b5085935050505092915050565b600060a08201905061378b60008301886128b3565b6137986020830187613184565b81810360408301526137aa8186613718565b90506137b96060830185612ad0565b6137c660808301846128b3565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061380a82612807565b915061381583612807565b925082613825576138246137d0565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061388c6021836126f8565b915061389782613830565b604082019050919050565b600060208201905081810360008301526138bb8161387f565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006138f8601b836126f8565b9150613903826138c2565b602082019050919050565b60006020820190508181036000830152613927816138eb565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cbe31a2f6395c466d549fd9ce1de4dddffac3bef4973038129c35c1bed45ad3464736f6c63430008130033

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

00000000000000000000000008651bb8d43e6cc6ed05dbaad2c5a29adfc217c4

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000008651bb8d43e6cc6ed05dbaad2c5a29adfc217c4


Deployed Bytecode Sourcemap

3625:10023:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12634:231;;;;;;;;;;;;;:::i;:::-;;5938:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6859:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4761:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6251:103;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7044:329;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6148:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13102:162;;;;;;;;;;;;;:::i;:::-;;10839:349;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6366:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2600:160;;;;;;;;;;;;;:::i;:::-;;12877:202;;;;;;;;;;;;;:::i;:::-;;4826:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2358:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4892:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6041:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11743:879;;;;;;;;;;;;;:::i;:::-;;6505:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13276:324;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10714:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4681:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6696:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10577:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12634:231;2511:12;:10;:12::i;:::-;2501:22;;:6;;;;;;;;;;:22;;;2493:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12700:11:::1;;;;;;;;;;;12699:12;12691:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;12764:4;12750:11;;:18;;;;;;;;;;;;;;;;;;12797:4;12783:11;;:18;;;;;;;;;;;;;;;;;;12821:32;12829:11;;;;;;;;;;;12841;;;;;;;;;;;12821:32;;;;;;;:::i;:::-;;;;;;;;12634:231::o:0;5938:91::-;5975:13;6012:5;;;;;;;;;;;;;;;;;6005:12;;5938:91;:::o;6859:173::-;6934:4;6955:39;6964:12;:10;:12::i;:::-;6978:7;6987:6;6955:8;:39::i;:::-;7016:4;7009:11;;6859:173;;;;:::o;4761:54::-;;;;:::o;6251:103::-;6304:7;4476:1;4537:2;:13;;;;:::i;:::-;4523:11;:27;;;;:::i;:::-;6328:14;;6251:103;:::o;7044:329::-;7142:4;7163:36;7173:6;7181:9;7192:6;7163:9;:36::i;:::-;7214:121;7223:6;7231:12;:10;:12::i;:::-;7245:89;7283:6;7245:89;;;;;;;;;;;;;;;;;:11;:19;7257:6;7245:19;;;;;;;;;;;;;;;:33;7265:12;:10;:12::i;:::-;7245:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7214:8;:121::i;:::-;7357:4;7350:11;;7044:329;;;;;:::o;6148:91::-;6189:5;4476:1;6211:16;;6148:91;:::o;13102:162::-;2511:12;:10;:12::i;:::-;2501:22;;:6;;;;;;;;;;:22;;;2493:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13167:6:::1;;;;;;;;;;;13166:7;:22;;;;;13177:11;;;;;;;;;;;13166:22;13158:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;13223:29;13240:11;;13223:16;:29::i;:::-;13102:162::o:0;10839:349::-;2511:12;:10;:12::i;:::-;2501:22;;:6;;;;;;;;;;:22;;;2493:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10977:6:::1;;:13;;10956:10;;:17;;:34;10948:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;11050:9;11045:132;11069:10;;:17;;11065:1;:21;11045:132;;;11112:49;11122:12;:10;:12::i;:::-;11136:10;;11147:1;11136:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11151:6;;11158:1;11151:9;;;;;;;:::i;:::-;;;;;;;;11112;:49::i;:::-;11088:3;;;;;:::i;:::-;;;;11045:132;;;;10839:349:::0;;;;:::o;6366:127::-;6432:7;6463:9;:18;6473:7;6463:18;;;;;;;;;;;;;;;;6456:25;;6366:127;;;:::o;2600:160::-;2511:12;:10;:12::i;:::-;2501:22;;:6;;;;;;;;;;:22;;;2493:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2711:1:::1;2674:40;;2695:6;::::0;::::1;;;;;;;;2674:40;;;;;;;;;;;;2746:1;2729:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2600:160::o:0;12877:202::-;2511:12;:10;:12::i;:::-;2501:22;;:6;;;;;;;;;;:22;;;2493:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12949:5:::1;12935:11;;:19;;;;;;;;;;;;;;;;;;4476:1;4537:2;:13;;;;:::i;:::-;4523:11;:27;;;;:::i;:::-;12969:12;:21;;;;4476:1;4537:2;:13;;;;:::i;:::-;4523:11;:27;;;;:::i;:::-;13005:14;:23;;;;13048:19;4476:1;4537:2;:13;;;;:::i;:::-;4523:11;:27;;;;:::i;:::-;13048:19;;;;;;:::i;:::-;;;;;;;;12877:202::o:0;4826:55::-;;;;:::o;2358:87::-;2396:7;2427:6;;;;;;;;;;;2420:13;;2358:87;:::o;4892:57::-;;;;:::o;6041:95::-;6080:13;6117:7;;;;;;;;;;;;;;;;;6110:14;;6041:95;:::o;11743:879::-;2511:12;:10;:12::i;:::-;2501:22;;:6;;;;;;;;;;:22;;;2493:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11802:11:::1;;;;;;;;;;;11801:12;11793:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;11851:19;11873:66;11902:36;11934:3;11902:27;4072:2;4476:1;4537:2;:13;;;;:::i;:::-;4523:11;:27;;;;:::i;:::-;11902:11;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;11873:24;11891:4;11873:9;:24::i;:::-;:28;;:66;;;;:::i;:::-;11851:88;;11991:42;11954:15;;:80;;;;;;;;;;;;;;;;;;12049:58;12066:4;12081:15;;;;;;;;;;;4476:1;4537:2;:13;;;;:::i;:::-;4523:11;:27;;;;:::i;:::-;12049:8;:58::i;:::-;12156:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12138:73;;;12220:4;12227:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12138:126;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12122:13;;:142;;;;;;;;;;;;;;;;;;12279:15;;;;;;;;;;;:31;;;12318:21;12368:4;12392:11;12422:1;12442::::0;12462:12:::1;:10;:12::i;:::-;12493:15;12279:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12545:13;;;;;;;;;;;12538:29;;;12576:15;;;;;;;;;;;12594:14;12538:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11778:844;11743:879::o:0;6505:179::-;6583:4;6604:42;6614:12;:10;:12::i;:::-;6628:9;6639:6;6604:9;:42::i;:::-;6668:4;6661:11;;6505:179;;;;:::o;13276:324::-;2511:12;:10;:12::i;:::-;2501:22;;:6;;;;;;;;;;:22;;;2493:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13389:2:::1;13376:9;:15;;:35;;;;;13409:2;13395:10;:16;;13376:35;:50;;;;;13415:11;;;;;;;;;;;13376:50;13368:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;13487:9;13472:12;:24;;;;13527:10;13511:13;:26;;;;13557:31;13566:9;13577:10;13557:31;;;;;;;:::i;:::-;;;;;;;;13276:324:::0;;:::o;10714:105::-;2511:12;:10;:12::i;:::-;2501:22;;:6;;;;;;;;;;:22;;;2493:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10801:6:::1;10787:11;:20;;;;10714:105:::0;:::o;4681:69::-;4476:1;4737:2;:13;;;;:::i;:::-;4725:9;:25;;;;:::i;:::-;4681:69;:::o;6696:151::-;6777:7;6808:11;:18;6820:5;6808:18;;;;;;;;;;;;;;;:27;6827:7;6808:27;;;;;;;;;;;;;;;;6801:34;;6696:151;;;;:::o;10577:125::-;2511:12;:10;:12::i;:::-;2501:22;;:6;;;;;;;;;;:22;;;2493:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10677:13:::1;10664:10;;:26;;;;;;;;;;;;;;;;;;10577:125:::0;:::o;97:98::-;150:7;177:10;170:17;;97:98;:::o;7385:292::-;7499:1;7482:19;;:5;:19;;;;:44;;;;;7524:1;7505:21;;:7;:21;;;;7482:44;7474:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;7607:6;7577:11;:18;7589:5;7577:18;;;;;;;;;;;;;;;:27;7596:7;7577:27;;;;;;;;;;;;;;;:36;;;;7649:7;7633:32;;7642:5;7633:32;;;7658:6;7633:32;;;;;;:::i;:::-;;;;;;;;7385:292;;;:::o;7689:2756::-;7797:1;7781:18;;:4;:18;;;;:38;;;;;7817:1;7803:16;;:2;:16;;;;7781:38;7773:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;7888:1;7879:6;:10;7871:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7950:17;7998:7;:5;:7::i;:::-;7990:15;;:4;:15;;;;:32;;;;;8015:7;:5;:7::i;:::-;8009:13;;:2;:13;;;;7990:32;7986:2071;;;8050:11;;;;;;;;;;;8045:217;;8119:18;:24;8138:4;8119:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8147:18;:22;8166:2;8147:22;;;;;;;;;;;;;;;;;;;;;;;;;8119:50;8086:156;;;;;;;;;;;;:::i;:::-;;;;;;;;;8045:217;8295:13;;;;;;;;;;;8287:21;;:4;:21;;;:55;;;;;8326:15;;;;;;;;;;;8312:30;;:2;:30;;;;8287:55;:83;;;;;8348:18;:22;8367:2;8348:22;;;;;;;;;;;;;;;;;;;;;;;;;8346:24;8287:83;8283:401;;;8400:11;;;;;;;;;;;8396:234;;;8458:12;;8448:6;:22;;8440:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8561:14;;8551:6;8535:13;8545:2;8535:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8527:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8396:234;8653:9;;:11;;;;;;;;;:::i;:::-;;;;;;8283:401;8731:13;;;;;;;;;;;8725:19;;:2;:19;;;:43;;;;;8763:4;8748:20;;:4;:20;;;;8725:43;8720:511;;;8805:150;8929:3;8805:119;4235:2;8840:9;;:26;8839:84;;4126:2;8839:84;;;8894:13;;8839:84;8805:6;:10;;:119;;;;:::i;:::-;:123;;:150;;;;:::i;:::-;8793:162;;8720:511;;;8993:13;;;;;;;;;;;8985:21;;:4;:21;;;:43;;;;;9023:4;9010:18;;:2;:18;;;;8985:43;8981:250;;;9065:146;9185:3;9065:115;4180:2;9099:9;;:25;9098:81;;4072:2;9098:81;;;9152:12;;9098:81;9065:6;:10;;:115;;;;:::i;:::-;:119;;:146;;;;:::i;:::-;9053:158;;8981:250;8720:511;9251:28;9282:24;9300:4;9282:9;:24::i;:::-;9251:55;;9352:6;;;;;;;;;;;9351:7;:52;;;;;9390:13;;;;;;;;;;;9384:19;;:2;:19;;;9351:52;:89;;;;;9429:11;;;;;;;;;;;9351:89;:153;;;;;4476:1;4737:2;:13;;;;:::i;:::-;4725:9;:25;;;;:::i;:::-;9466:20;:38;9351:153;:207;;;;;4293:2;9530:9;;:28;9351:207;9325:717;;;9600:14;9641:11;;9618:20;:34;9617:69;;9666:20;9617:69;;;9654:11;;9617:69;9600:86;;9709:20;9740:6;9733;:13;9732:29;;9755:6;9732:29;;;9748:6;9732:29;9709:52;;9784:30;9801:12;9784:16;:30::i;:::-;9837:26;9866:21;9837:50;;9934:1;9913:18;:22;9910:113;;;9964:35;9977:21;9964:12;:35::i;:::-;9910:113;9577:465;;;9325:717;8024:2033;7986:2071;10086:1;10076:9;:11;10073:173;;;10130:39;10159:9;10130;:24;10148:4;10130:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10105:9;:24;10123:4;10105:24;;;;;;;;;;;;;;;:64;;;;10214:4;10191:39;;10200:4;10191:39;;;10220:9;10191:39;;;;;;:::i;:::-;;;;;;;;10073:173;10276:27;10296:6;10276:9;:15;10286:4;10276:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10260:9;:15;10270:4;10260:15;;;;;;;;;;;;;;;:43;;;;10332:40;10350:21;10361:9;10350:6;:10;;:21;;;;:::i;:::-;10332:9;:13;10342:2;10332:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10318:9;:13;10328:2;10318:13;;;;;;;;;;;;;;;:54;;;;10407:2;10392:41;;10401:4;10392:41;;;10411:21;10422:9;10411:6;:10;;:21;;;;:::i;:::-;10392:41;;;;;;:::i;:::-;;;;;;;;7758:2687;7689:2756;;;:::o;1234:190::-;1320:7;1353:1;1348;:6;;1356:12;1340:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1380:9;1396:1;1392;:5;;;;:::i;:::-;1380:17;;1415:1;1408:8;;;1234:190;;;;;:::o;11200:531::-;5428:4;5419:6;;:13;;;;;;;;;;;;;;;;;;11282:21:::1;11320:1;11306:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11282:40;;11355:4;11337;11342:1;11337:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11385:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11375:4;11380:1;11375:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11422:62;11439:4;11454:15;;;;;;;;;;;11472:11;11422:8;:62::i;:::-;11499:15;;;;;;;;;;;:66;;;11584:11;11614:1;11634:4;11665;11689:15;11499:220;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11267:464;5472:5:::0;5463:6;;:14;;;;;;;;;;;;;;;;;;11200:531;:::o;1432:246::-;1490:7;1519:1;1514;:6;1510:47;;1544:1;1537:8;;;;1510:47;1567:9;1583:1;1579;:5;;;;:::i;:::-;1567:17;;1612:1;1607;1603;:5;;;;:::i;:::-;:10;1595:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1669:1;1662:8;;;1432:246;;;;;:::o;1686:132::-;1744:7;1771:39;1775:1;1778;1771:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1764:46;;1686:132;;;;:::o;1090:136::-;1148:7;1175:43;1179:1;1182;1175:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1168:50;;1090:136;;;;:::o;10457:100::-;10518:10;;;;;;;;;;;:19;;:27;10538:6;10518:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10457:100;:::o;903:179::-;961:7;981:9;997:1;993;:5;;;;:::i;:::-;981:17;;1022:1;1017;:6;;1009:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1073:1;1066:8;;;903:179;;;;:::o;1826:189::-;1912:7;1944:1;1940;:5;1947:12;1932:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1971:9;1987:1;1983;:5;;;;:::i;:::-;1971:17;;2006:1;1999:8;;;1826: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;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:117;5085:1;5082;5075:12;5099:117;5208:1;5205;5198:12;5239:568;5312:8;5322:6;5372:3;5365:4;5357:6;5353:17;5349:27;5339:122;;5380:79;;:::i;:::-;5339:122;5493:6;5480:20;5470:30;;5523:18;5515:6;5512:30;5509:117;;;5545:79;;:::i;:::-;5509:117;5659:4;5651:6;5647:17;5635:29;;5713:3;5705:4;5697:6;5693:17;5683:8;5679:32;5676:41;5673:128;;;5720:79;;:::i;:::-;5673:128;5239:568;;;;;:::o;5830:::-;5903:8;5913:6;5963:3;5956:4;5948:6;5944:17;5940:27;5930:122;;5971:79;;:::i;:::-;5930:122;6084:6;6071:20;6061:30;;6114:18;6106:6;6103:30;6100:117;;;6136:79;;:::i;:::-;6100:117;6250:4;6242:6;6238:17;6226:29;;6304:3;6296:4;6288:6;6284:17;6274:8;6270:32;6267:41;6264:128;;;6311:79;;:::i;:::-;6264:128;5830:568;;;;;:::o;6404:934::-;6526:6;6534;6542;6550;6599:2;6587:9;6578:7;6574:23;6570:32;6567:119;;;6605:79;;:::i;:::-;6567:119;6753:1;6742:9;6738:17;6725:31;6783:18;6775:6;6772:30;6769:117;;;6805:79;;:::i;:::-;6769:117;6918:80;6990:7;6981:6;6970:9;6966:22;6918:80;:::i;:::-;6900:98;;;;6696:312;7075:2;7064:9;7060:18;7047:32;7106:18;7098:6;7095:30;7092:117;;;7128:79;;:::i;:::-;7092:117;7241:80;7313:7;7304:6;7293:9;7289:22;7241:80;:::i;:::-;7223:98;;;;7018:313;6404:934;;;;;;;:::o;7344:329::-;7403:6;7452:2;7440:9;7431:7;7427:23;7423:32;7420:119;;;7458:79;;:::i;:::-;7420:119;7578:1;7603:53;7648:7;7639:6;7628:9;7624:22;7603:53;:::i;:::-;7593:63;;7549:117;7344:329;;;;:::o;7679:118::-;7766:24;7784:5;7766:24;:::i;:::-;7761:3;7754:37;7679:118;;:::o;7803:222::-;7896:4;7934:2;7923:9;7919:18;7911:26;;7947:71;8015:1;8004:9;8000:17;7991:6;7947:71;:::i;:::-;7803:222;;;;:::o;8031:474::-;8099:6;8107;8156:2;8144:9;8135:7;8131:23;8127:32;8124:119;;;8162:79;;:::i;:::-;8124:119;8282:1;8307:53;8352:7;8343:6;8332:9;8328:22;8307:53;:::i;:::-;8297:63;;8253:117;8409:2;8435:53;8480:7;8471:6;8460:9;8456:22;8435:53;:::i;:::-;8425:63;;8380:118;8031:474;;;;;:::o;8511:329::-;8570:6;8619:2;8607:9;8598:7;8594:23;8590:32;8587:119;;;8625:79;;:::i;:::-;8587:119;8745:1;8770:53;8815:7;8806:6;8795:9;8791:22;8770:53;:::i;:::-;8760:63;;8716:117;8511:329;;;;:::o;8846:474::-;8914:6;8922;8971:2;8959:9;8950:7;8946:23;8942:32;8939:119;;;8977:79;;:::i;:::-;8939:119;9097:1;9122:53;9167:7;9158:6;9147:9;9143:22;9122:53;:::i;:::-;9112:63;;9068:117;9224:2;9250:53;9295:7;9286:6;9275:9;9271:22;9250:53;:::i;:::-;9240:63;;9195:118;8846:474;;;;;:::o;9326:104::-;9371:7;9400:24;9418:5;9400:24;:::i;:::-;9389:35;;9326:104;;;:::o;9436:138::-;9517:32;9543:5;9517:32;:::i;:::-;9510:5;9507:43;9497:71;;9564:1;9561;9554:12;9497:71;9436:138;:::o;9580:155::-;9634:5;9672:6;9659:20;9650:29;;9688:41;9723:5;9688:41;:::i;:::-;9580:155;;;;:::o;9741:345::-;9808:6;9857:2;9845:9;9836:7;9832:23;9828:32;9825:119;;;9863:79;;:::i;:::-;9825:119;9983:1;10008:61;10061:7;10052:6;10041:9;10037:22;10008:61;:::i;:::-;9998:71;;9954:125;9741:345;;;;:::o;10092:182::-;10232:34;10228:1;10220:6;10216:14;10209:58;10092:182;:::o;10280:366::-;10422:3;10443:67;10507:2;10502:3;10443:67;:::i;:::-;10436:74;;10519:93;10608:3;10519:93;:::i;:::-;10637:2;10632:3;10628:12;10621:19;;10280:366;;;:::o;10652:419::-;10818:4;10856:2;10845:9;10841:18;10833:26;;10905:9;10899:4;10895:20;10891:1;10880:9;10876:17;10869:47;10933:131;11059:4;10933:131;:::i;:::-;10925:139;;10652:419;;;:::o;11077:170::-;11217:22;11213:1;11205:6;11201:14;11194:46;11077:170;:::o;11253:366::-;11395:3;11416:67;11480:2;11475:3;11416:67;:::i;:::-;11409:74;;11492:93;11581:3;11492:93;:::i;:::-;11610:2;11605:3;11601:12;11594:19;;11253:366;;;:::o;11625:419::-;11791:4;11829:2;11818:9;11814:18;11806:26;;11878:9;11872:4;11868:20;11864:1;11853:9;11849:17;11842:47;11906:131;12032:4;11906:131;:::i;:::-;11898:139;;11625:419;;;:::o;12050:308::-;12159:4;12197:2;12186:9;12182:18;12174:26;;12210:65;12272:1;12261:9;12257:17;12248:6;12210:65;:::i;:::-;12285:66;12347:2;12336:9;12332:18;12323:6;12285:66;:::i;:::-;12050:308;;;;;:::o;12364:180::-;12412:77;12409:1;12402:88;12509:4;12506:1;12499:15;12533:4;12530:1;12523:15;12550:102;12592:8;12639:5;12636:1;12632:13;12611:34;;12550:102;;;:::o;12658:848::-;12719:5;12726:4;12750:6;12741:15;;12774:5;12765:14;;12788:712;12809:1;12799:8;12796:15;12788:712;;;12904:4;12899:3;12895:14;12889:4;12886:24;12883:50;;;12913:18;;:::i;:::-;12883:50;12963:1;12953:8;12949:16;12946:451;;;13378:4;13371:5;13367:16;13358:25;;12946:451;13428:4;13422;13418:15;13410:23;;13458:32;13481:8;13458:32;:::i;:::-;13446:44;;12788:712;;;12658:848;;;;;;;:::o;13512:1073::-;13566:5;13757:8;13747:40;;13778:1;13769:10;;13780:5;;13747:40;13806:4;13796:36;;13823:1;13814:10;;13825:5;;13796:36;13892:4;13940:1;13935:27;;;;13976:1;13971:191;;;;13885:277;;13935:27;13953:1;13944:10;;13955:5;;;13971:191;14016:3;14006:8;14003:17;14000:43;;;14023:18;;:::i;:::-;14000:43;14072:8;14069:1;14065:16;14056:25;;14107:3;14100:5;14097:14;14094:40;;;14114:18;;:::i;:::-;14094:40;14147:5;;;13885:277;;14271:2;14261:8;14258:16;14252:3;14246:4;14243:13;14239:36;14221:2;14211:8;14208:16;14203:2;14197:4;14194:12;14190:35;14174:111;14171:246;;;14327:8;14321:4;14317:19;14308:28;;14362:3;14355:5;14352:14;14349:40;;;14369:18;;:::i;:::-;14349:40;14402:5;;14171:246;14442:42;14480:3;14470:8;14464:4;14461:1;14442:42;:::i;:::-;14427:57;;;;14516:4;14511:3;14507:14;14500:5;14497:25;14494:51;;;14525:18;;:::i;:::-;14494:51;14574:4;14567:5;14563:16;14554:25;;13512:1073;;;;;;:::o;14591:281::-;14649:5;14673:23;14691:4;14673:23;:::i;:::-;14665:31;;14717:25;14733:8;14717:25;:::i;:::-;14705:37;;14761:104;14798:66;14788:8;14782:4;14761:104;:::i;:::-;14752:113;;14591:281;;;;:::o;14878:410::-;14918:7;14941:20;14959:1;14941:20;:::i;:::-;14936:25;;14975:20;14993:1;14975:20;:::i;:::-;14970:25;;15030:1;15027;15023:9;15052:30;15070:11;15052:30;:::i;:::-;15041:41;;15231:1;15222:7;15218:15;15215:1;15212:22;15192:1;15185:9;15165:83;15142:139;;15261:18;;:::i;:::-;15142:139;14926:362;14878:410;;;;:::o;15294:165::-;15434:17;15430:1;15422:6;15418:14;15411:41;15294:165;:::o;15465:366::-;15607:3;15628:67;15692:2;15687:3;15628:67;:::i;:::-;15621:74;;15704:93;15793:3;15704:93;:::i;:::-;15822:2;15817:3;15813:12;15806:19;;15465:366;;;:::o;15837:419::-;16003:4;16041:2;16030:9;16026:18;16018:26;;16090:9;16084:4;16080:20;16076:1;16065:9;16061:17;16054:47;16118:131;16244:4;16118:131;:::i;:::-;16110:139;;15837:419;;;:::o;16262:222::-;16402:34;16398:1;16390:6;16386:14;16379:58;16471:5;16466:2;16458:6;16454:15;16447:30;16262:222;:::o;16490:366::-;16632:3;16653:67;16717:2;16712:3;16653:67;:::i;:::-;16646:74;;16729:93;16818:3;16729:93;:::i;:::-;16847:2;16842:3;16838:12;16831:19;;16490:366;;;:::o;16862:419::-;17028:4;17066:2;17055:9;17051:18;17043:26;;17115:9;17109:4;17105:20;17101:1;17090:9;17086:17;17079:47;17143:131;17269:4;17143:131;:::i;:::-;17135:139;;16862:419;;;:::o;17287:180::-;17335:77;17332:1;17325:88;17432:4;17429:1;17422:15;17456:4;17453:1;17446:15;17473:233;17512:3;17535:24;17553:5;17535:24;:::i;:::-;17526:33;;17581:66;17574:5;17571:77;17568:103;;17651:18;;:::i;:::-;17568:103;17698:1;17691:5;17687:13;17680:20;;17473:233;;;:::o;17712:169::-;17852:21;17848:1;17840:6;17836:14;17829:45;17712:169;:::o;17887:366::-;18029:3;18050:67;18114:2;18109:3;18050:67;:::i;:::-;18043:74;;18126:93;18215:3;18126:93;:::i;:::-;18244:2;18239:3;18235:12;18228:19;;17887:366;;;:::o;18259:419::-;18425:4;18463:2;18452:9;18448:18;18440:26;;18512:9;18506:4;18502:20;18498:1;18487:9;18483:17;18476:47;18540:131;18666:4;18540:131;:::i;:::-;18532:139;;18259:419;;;:::o;18684:143::-;18741:5;18772:6;18766:13;18757:22;;18788:33;18815:5;18788:33;:::i;:::-;18684:143;;;;:::o;18833:351::-;18903:6;18952:2;18940:9;18931:7;18927:23;18923:32;18920:119;;;18958:79;;:::i;:::-;18920:119;19078:1;19103:64;19159:7;19150:6;19139:9;19135:22;19103:64;:::i;:::-;19093:74;;19049:128;18833:351;;;;:::o;19190:332::-;19311:4;19349:2;19338:9;19334:18;19326:26;;19362:71;19430:1;19419:9;19415:17;19406:6;19362:71;:::i;:::-;19443:72;19511:2;19500:9;19496:18;19487:6;19443:72;:::i;:::-;19190:332;;;;;:::o;19528:85::-;19573:7;19602:5;19591:16;;19528:85;;;:::o;19619:60::-;19647:3;19668:5;19661:12;;19619:60;;;:::o;19685:158::-;19743:9;19776:61;19794:42;19803:32;19829:5;19803:32;:::i;:::-;19794:42;:::i;:::-;19776:61;:::i;:::-;19763:74;;19685:158;;;:::o;19849:147::-;19944:45;19983:5;19944:45;:::i;:::-;19939:3;19932:58;19849:147;;:::o;20002:807::-;20251:4;20289:3;20278:9;20274:19;20266:27;;20303:71;20371:1;20360:9;20356:17;20347:6;20303:71;:::i;:::-;20384:72;20452:2;20441:9;20437:18;20428:6;20384:72;:::i;:::-;20466:80;20542:2;20531:9;20527:18;20518:6;20466:80;:::i;:::-;20556;20632:2;20621:9;20617:18;20608:6;20556:80;:::i;:::-;20646:73;20714:3;20703:9;20699:19;20690:6;20646:73;:::i;:::-;20729;20797:3;20786:9;20782:19;20773:6;20729:73;:::i;:::-;20002:807;;;;;;;;;:::o;20815:143::-;20872:5;20903:6;20897:13;20888:22;;20919:33;20946:5;20919:33;:::i;:::-;20815:143;;;;:::o;20964:663::-;21052:6;21060;21068;21117:2;21105:9;21096:7;21092:23;21088:32;21085:119;;;21123:79;;:::i;:::-;21085:119;21243:1;21268:64;21324:7;21315:6;21304:9;21300:22;21268:64;:::i;:::-;21258:74;;21214:128;21381:2;21407:64;21463:7;21454:6;21443:9;21439:22;21407:64;:::i;:::-;21397:74;;21352:129;21520:2;21546:64;21602:7;21593:6;21582:9;21578:22;21546:64;:::i;:::-;21536:74;;21491:129;20964:663;;;;;:::o;21633:332::-;21754:4;21792:2;21781:9;21777:18;21769:26;;21805:71;21873:1;21862:9;21858:17;21849:6;21805:71;:::i;:::-;21886:72;21954:2;21943:9;21939:18;21930:6;21886:72;:::i;:::-;21633:332;;;;;:::o;21971:116::-;22041:21;22056:5;22041:21;:::i;:::-;22034:5;22031:32;22021:60;;22077:1;22074;22067:12;22021:60;21971:116;:::o;22093:137::-;22147:5;22178:6;22172:13;22163:22;;22194:30;22218:5;22194:30;:::i;:::-;22093:137;;;;:::o;22236:345::-;22303:6;22352:2;22340:9;22331:7;22327:23;22323:32;22320:119;;;22358:79;;:::i;:::-;22320:119;22478:1;22503:61;22556:7;22547:6;22536:9;22532:22;22503:61;:::i;:::-;22493:71;;22449:125;22236:345;;;;:::o;22587:176::-;22727:28;22723:1;22715:6;22711:14;22704:52;22587:176;:::o;22769:366::-;22911:3;22932:67;22996:2;22991:3;22932:67;:::i;:::-;22925:74;;23008:93;23097:3;23008:93;:::i;:::-;23126:2;23121:3;23117:12;23110:19;;22769:366;;;:::o;23141:419::-;23307:4;23345:2;23334:9;23330:18;23322:26;;23394:9;23388:4;23384:20;23380:1;23369:9;23365:17;23358:47;23422:131;23548:4;23422:131;:::i;:::-;23414:139;;23141:419;;;:::o;23566:332::-;23687:4;23725:2;23714:9;23710:18;23702:26;;23738:71;23806:1;23795:9;23791:17;23782:6;23738:71;:::i;:::-;23819:72;23887:2;23876:9;23872:18;23863:6;23819:72;:::i;:::-;23566:332;;;;;:::o;23904:181::-;24044:33;24040:1;24032:6;24028:14;24021:57;23904:181;:::o;24091:366::-;24233:3;24254:67;24318:2;24313:3;24254:67;:::i;:::-;24247:74;;24330:93;24419:3;24330:93;:::i;:::-;24448:2;24443:3;24439:12;24432:19;;24091:366;;;:::o;24463:419::-;24629:4;24667:2;24656:9;24652:18;24644:26;;24716:9;24710:4;24706:20;24702:1;24691:9;24687:17;24680:47;24744:131;24870:4;24744:131;:::i;:::-;24736:139;;24463:419;;;:::o;24888:182::-;25028:34;25024:1;25016:6;25012:14;25005:58;24888:182;:::o;25076:366::-;25218:3;25239:67;25303:2;25298:3;25239:67;:::i;:::-;25232:74;;25315:93;25404:3;25315:93;:::i;:::-;25433:2;25428:3;25424:12;25417:19;;25076:366;;;:::o;25448:419::-;25614:4;25652:2;25641:9;25637:18;25629:26;;25701:9;25695:4;25691:20;25687:1;25676:9;25672:17;25665:47;25729:131;25855:4;25729:131;:::i;:::-;25721:139;;25448:419;;;:::o;25873:228::-;26013:34;26009:1;26001:6;25997:14;25990:58;26082:11;26077:2;26069:6;26065:15;26058:36;25873:228;:::o;26107:366::-;26249:3;26270:67;26334:2;26329:3;26270:67;:::i;:::-;26263:74;;26346:93;26435:3;26346:93;:::i;:::-;26464:2;26459:3;26455:12;26448:19;;26107:366;;;:::o;26479:419::-;26645:4;26683:2;26672:9;26668:18;26660:26;;26732:9;26726:4;26722:20;26718:1;26707:9;26703:17;26696:47;26760:131;26886:4;26760:131;:::i;:::-;26752:139;;26479:419;;;:::o;26904:173::-;27044:25;27040:1;27032:6;27028:14;27021:49;26904:173;:::o;27083:366::-;27225:3;27246:67;27310:2;27305:3;27246:67;:::i;:::-;27239:74;;27322:93;27411:3;27322:93;:::i;:::-;27440:2;27435:3;27431:12;27424:19;;27083:366;;;:::o;27455:419::-;27621:4;27659:2;27648:9;27644:18;27636:26;;27708:9;27702:4;27698:20;27694:1;27683:9;27679:17;27672:47;27736:131;27862:4;27736:131;:::i;:::-;27728:139;;27455:419;;;:::o;27880:175::-;28020:27;28016:1;28008:6;28004:14;27997:51;27880:175;:::o;28061:366::-;28203:3;28224:67;28288:2;28283:3;28224:67;:::i;:::-;28217:74;;28300:93;28389:3;28300:93;:::i;:::-;28418:2;28413:3;28409:12;28402:19;;28061:366;;;:::o;28433:419::-;28599:4;28637:2;28626:9;28622:18;28614:26;;28686:9;28680:4;28676:20;28672:1;28661:9;28657:17;28650:47;28714:131;28840:4;28714:131;:::i;:::-;28706:139;;28433:419;;;:::o;28858:191::-;28898:3;28917:20;28935:1;28917:20;:::i;:::-;28912:25;;28951:20;28969:1;28951:20;:::i;:::-;28946:25;;28994:1;28991;28987:9;28980:16;;29015:3;29012:1;29009:10;29006:36;;;29022:18;;:::i;:::-;29006:36;28858:191;;;;:::o;29055:176::-;29195:28;29191:1;29183:6;29179:14;29172:52;29055:176;:::o;29237:366::-;29379:3;29400:67;29464:2;29459:3;29400:67;:::i;:::-;29393:74;;29476:93;29565:3;29476:93;:::i;:::-;29594:2;29589:3;29585:12;29578:19;;29237:366;;;:::o;29609:419::-;29775:4;29813:2;29802:9;29798:18;29790:26;;29862:9;29856:4;29852:20;29848:1;29837:9;29833:17;29826:47;29890:131;30016:4;29890:131;:::i;:::-;29882:139;;29609:419;;;:::o;30034:194::-;30074:4;30094:20;30112:1;30094:20;:::i;:::-;30089:25;;30128:20;30146:1;30128:20;:::i;:::-;30123:25;;30172:1;30169;30165:9;30157:17;;30196:1;30190:4;30187:11;30184:37;;;30201:18;;:::i;:::-;30184:37;30034:194;;;;:::o;30234:180::-;30282:77;30279:1;30272:88;30379:4;30376:1;30369:15;30403:4;30400:1;30393:15;30420:114;30487:6;30521:5;30515:12;30505:22;;30420:114;;;:::o;30540:184::-;30639:11;30673:6;30668:3;30661:19;30713:4;30708:3;30704:14;30689:29;;30540:184;;;;:::o;30730:132::-;30797:4;30820:3;30812:11;;30850:4;30845:3;30841:14;30833:22;;30730:132;;;:::o;30868:108::-;30945:24;30963:5;30945:24;:::i;:::-;30940:3;30933:37;30868:108;;:::o;30982:179::-;31051:10;31072:46;31114:3;31106:6;31072:46;:::i;:::-;31150:4;31145:3;31141:14;31127:28;;30982:179;;;;:::o;31167:113::-;31237:4;31269;31264:3;31260:14;31252:22;;31167:113;;;:::o;31316:732::-;31435:3;31464:54;31512:5;31464:54;:::i;:::-;31534:86;31613:6;31608:3;31534:86;:::i;:::-;31527:93;;31644:56;31694:5;31644:56;:::i;:::-;31723:7;31754:1;31739:284;31764:6;31761:1;31758:13;31739:284;;;31840:6;31834:13;31867:63;31926:3;31911:13;31867:63;:::i;:::-;31860:70;;31953:60;32006:6;31953:60;:::i;:::-;31943:70;;31799:224;31786:1;31783;31779:9;31774:14;;31739:284;;;31743:14;32039:3;32032:10;;31440:608;;;31316:732;;;;:::o;32054:831::-;32317:4;32355:3;32344:9;32340:19;32332:27;;32369:71;32437:1;32426:9;32422:17;32413:6;32369:71;:::i;:::-;32450:80;32526:2;32515:9;32511:18;32502:6;32450:80;:::i;:::-;32577:9;32571:4;32567:20;32562:2;32551:9;32547:18;32540:48;32605:108;32708:4;32699:6;32605:108;:::i;:::-;32597:116;;32723:72;32791:2;32780:9;32776:18;32767:6;32723:72;:::i;:::-;32805:73;32873:3;32862:9;32858:19;32849:6;32805:73;:::i;:::-;32054:831;;;;;;;;:::o;32891:180::-;32939:77;32936:1;32929:88;33036:4;33033:1;33026:15;33060:4;33057:1;33050:15;33077:185;33117:1;33134:20;33152:1;33134:20;:::i;:::-;33129:25;;33168:20;33186:1;33168:20;:::i;:::-;33163:25;;33207:1;33197:35;;33212:18;;:::i;:::-;33197:35;33254:1;33251;33247:9;33242:14;;33077:185;;;;:::o;33268:220::-;33408:34;33404:1;33396:6;33392:14;33385:58;33477:3;33472:2;33464:6;33460:15;33453:28;33268:220;:::o;33494:366::-;33636:3;33657:67;33721:2;33716:3;33657:67;:::i;:::-;33650:74;;33733:93;33822:3;33733:93;:::i;:::-;33851:2;33846:3;33842:12;33835:19;;33494:366;;;:::o;33866:419::-;34032:4;34070:2;34059:9;34055:18;34047:26;;34119:9;34113:4;34109:20;34105:1;34094:9;34090:17;34083:47;34147:131;34273:4;34147:131;:::i;:::-;34139:139;;33866:419;;;:::o;34291:177::-;34431:29;34427:1;34419:6;34415:14;34408:53;34291:177;:::o;34474:366::-;34616:3;34637:67;34701:2;34696:3;34637:67;:::i;:::-;34630:74;;34713:93;34802:3;34713:93;:::i;:::-;34831:2;34826:3;34822:12;34815:19;;34474:366;;;:::o;34846:419::-;35012:4;35050:2;35039:9;35035:18;35027:26;;35099:9;35093:4;35089:20;35085:1;35074:9;35070:17;35063:47;35127:131;35253:4;35127:131;:::i;:::-;35119:139;;34846:419;;;:::o

Swarm Source

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