ETH Price: $3,054.40 (+1.01%)
Gas: 2 Gwei

Token

Hobbes (HOBBES)
 

Overview

Max Total Supply

5,000,000,000,000 HOBBES

Holders

812 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH (+1.38%)

Onchain Market Cap

$172,135.27

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 HOBBES

Value
$0.00
0x679bd3c0e0ca4fe0e72aec4c599c91d7e5612263
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Introducing Hobbes, a Meme Coin community-driven cryptocurrency on the Ethereum network.

Market

Volume (24H):$162.91
Market Capitalization:$0.00
Circulating Supply:0.00 HOBBES
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
HobbesV2

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-25
*/

//SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    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);
}

abstract contract Auth {
    address internal _owner;
    event OwnershipTransferred(address _owner);
    constructor(address creatorOwner) { _owner = creatorOwner; }
    modifier onlyOwner() { require(msg.sender == _owner, "Only owner can call this"); _; }
    function owner() public view returns (address) { return _owner; }
    function renounceOwnership() external onlyOwner { 
        _owner = address(0); 
        emit OwnershipTransferred(address(0)); 
    }
}

contract HobbesV2 is IERC20, Auth {
    string private constant _name         = "Hobbes";
    string private constant _symbol       = "HOBBES";
    uint8 private constant _decimals      = 9;
    uint256 private constant _totalSupply = 5_000_000_000_000 * (10**_decimals);
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    uint32 private _tradeCount;

    address payable private constant _walletMarketing = payable(0xC9ff6b2875e60f609498eeB679B811B2664D65Ca);
    uint256 private constant _taxSwapMin = _totalSupply / 200000;
    uint256 private constant _taxSwapMax = _totalSupply / 1000;

    mapping (address => bool) private _noFees;

    address private constant _swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Router02 private _primarySwapRouter = IUniswapV2Router02(_swapRouterAddress);
    address private _primaryLP;
    mapping (address => bool) private _isLP;

    bool private _tradingOpen;

    bool private _inTaxSwap = false;
    modifier lockTaxSwap { 
        _inTaxSwap = true; 
        _; 
        _inTaxSwap = false; 
    }

    event TokensAirdropped(uint256 totalWallets, uint256 totalTokens);

    constructor() Auth(msg.sender) {
        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _balances[_owner]);

        _noFees[_owner] = true;
        _noFees[address(this)] = true;
        _noFees[_swapRouterAddress] = true;
        _noFees[_walletMarketing] = true;
    }

    receive() external payable {}
    
    function totalSupply() external pure override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(msg.sender), "Trading not open");
        return _transfer(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(sender), "Trading not open");
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] -= amount;
        }
        return _transfer(sender, recipient, amount);
    }

    function _approveRouter(uint256 _tokenAmount) internal {
        if ( _allowances[address(this)][_swapRouterAddress] < _tokenAmount ) {
            _allowances[address(this)][_swapRouterAddress] = type(uint256).max;
            emit Approval(address(this), _swapRouterAddress, type(uint256).max);
        }
    }

    function addLiquidity() external payable onlyOwner lockTaxSwap {
        require(_primaryLP == address(0), "LP exists");
        require(!_tradingOpen, "trading is open");
        require(msg.value > 0 || address(this).balance>0, "No ETH in contract or message");
        require(_balances[address(this)]>0, "No tokens in contract");
        _primaryLP = IUniswapV2Factory(_primarySwapRouter.factory()).createPair(address(this), _primarySwapRouter.WETH());
        _addLiquidity(_balances[address(this)], address(this).balance);
        _isLP[_primaryLP] = true;
        _tradeCount = 0;
        _tradingOpen = true;
    }

    function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei) internal {
        _approveRouter(_tokenAmount);
        _primarySwapRouter.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, _owner, block.timestamp );
    }

    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from Zero wallet");

        if (!_tradingOpen) { require(_noFees[sender], "Trading not open"); }
        if ( !_inTaxSwap && _isLP[recipient] ) { _swapTaxAndLiquify(); }

        uint256 _taxAmount = _calculateTax(sender, recipient, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balances[sender] -= amount;
        if ( _taxAmount > 0 ) { 
            _balances[address(this)] += _taxAmount; 
            incrementTradeCount();
        }
        _balances[recipient] += _transferAmount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function _checkTradingOpen(address sender) private view returns (bool){
        bool checkResult = false;
        if ( _tradingOpen ) { checkResult = true; } 
        else if (_noFees[sender]) { checkResult = true; } 

        return checkResult;
    }

    function incrementTradeCount() private {
        if ( _tradeCount <= 150_001 ) {
            // tax is finalized after 150,000 trades
            _tradeCount += 1;
        } 
    }

    function tax() external view returns (uint32 taxNumerator, uint32 taxDenominator, uint32 tradeCounter) {
        (uint32 numerator, uint32 denominator) = _getTaxPercentages();
        return (numerator, denominator, _tradeCount);
    }

    function _getTaxPercentages() private view returns (uint32 numerator, uint32 denominator) {
        uint32 taxNumerator;
        uint32 taxDenominator = 100_000;

        if ( _tradeCount <= 150_000 ) {
            taxNumerator = 1000;    // up to 150,000 trades the tax is 1.0 %
        } else {
            taxNumerator = 500;     // above 150,000 trades the tax is 0.5 %
        }

        return (taxNumerator, taxDenominator);
    }

    function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        
        if ( _tradingOpen && !_noFees[sender] && !_noFees[recipient] ) { 
            if ( _isLP[sender] || _isLP[recipient] ) {
                (uint32 numerator, uint32 denominator) = _getTaxPercentages();
                taxAmount = amount * numerator / denominator;
            }
        }

        return taxAmount;
    }

    function marketingWallet() external pure returns (address) {
        return _walletMarketing;
    }

    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokensAvailable = balanceOf(address(this));

        if ( _taxTokensAvailable >= _taxSwapMin && _tradingOpen ) {
            if ( _taxTokensAvailable >= _taxSwapMax ) { _taxTokensAvailable = _taxSwapMax; }
            
            _swapTaxTokensForEth(_taxTokensAvailable);

            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { 
                (bool sent, bytes memory data) = _walletMarketing.call{value: _contractETHBalance}("");
            }
        }
    }

    function _swapTaxTokensForEth(uint256 tokenAmount) private {
        _approveRouter(tokenAmount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _primarySwapRouter.WETH();
        _primarySwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp);
    }

    function airdrop(address[] calldata addresses, uint256[] calldata tokenAmounts) external onlyOwner {
        require(addresses.length <= 250,"More than 250 wallets");
        require(addresses.length == tokenAmounts.length,"List length mismatch");

        uint256 airdropTotal = 0;
        for(uint i=0; i < addresses.length; i++){
            airdropTotal += (tokenAmounts[i] * 10**_decimals);
        }
        
        require(_balances[msg.sender] >= airdropTotal, "Token balance too low");
        _balances[msg.sender] -= airdropTotal; //decrease sender balance of all airdropped tokens at once to save gas updating storage

        for(uint i=0; i < addresses.length; i++){
            _balances[addresses[i]] += (tokenAmounts[i] * 10**_decimals);
            emit Transfer(msg.sender, addresses[i], (tokenAmounts[i] * 10**_decimals) );       
        }

        emit TokensAirdropped(addresses.length, airdropTotal);
    }
}

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 WETH() external pure returns (address);
    function factory() 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 Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"totalWallets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalTokens","type":"uint256"}],"name":"TokensAirdropped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokenAmounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tax","outputs":[{"internalType":"uint32","name":"taxNumerator","type":"uint32"},{"internalType":"uint32","name":"taxDenominator","type":"uint32"},{"internalType":"uint32","name":"tradeCounter","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860016101000a81548160ff0219169083151502179055503480156200008157600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506009600a620000d491906200057c565b65048c27395000620000e79190620005cd565b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200022b919062000629565b60405180910390a36001600460008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016004600073c9ff6b2875e60f609498eeb679b811b2664d65ca73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000646565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200047057808604811115620004485762000447620003e2565b5b6001851615620004585780820291505b8081029050620004688562000411565b945062000428565b94509492505050565b6000826200048b57600190506200055e565b816200049b57600090506200055e565b8160018114620004b45760028114620004bf57620004f5565b60019150506200055e565b60ff841115620004d457620004d3620003e2565b5b8360020a915084821115620004ee57620004ed620003e2565b5b506200055e565b5060208310610133831016604e8410600b84101617156200052f5782820a905083811115620005295762000528620003e2565b5b6200055e565b6200053e84848460016200041e565b92509050818404811115620005585762000557620003e2565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620005898262000565565b915062000596836200056f565b9250620005c57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000479565b905092915050565b6000620005da8262000565565b9150620005e78362000565565b9250828202620005f78162000565565b91508282048414831517620006115762000610620003e2565b5b5092915050565b620006238162000565565b82525050565b600060208201905062000640600083018462000618565b92915050565b612f2680620006566000396000f3fe6080604052600436106100ec5760003560e01c8063715018a61161008a57806399c8d5561161005957806399c8d556146102f1578063a9059cbb1461031e578063dd62ed3e1461035b578063e8078d9414610398576100f3565b8063715018a61461025957806375f0a874146102705780638da5cb5b1461029b57806395d89b41146102c6576100f3565b806323b872dd116100c657806323b872dd1461018b578063313ce567146101c857806367243482146101f357806370a082311461021c576100f3565b806306fdde03146100f8578063095ea7b31461012357806318160ddd14610160576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061010d6103a2565b60405161011a9190612010565b60405180910390f35b34801561012f57600080fd5b5061014a600480360381019061014591906120d0565b6103df565b604051610157919061212b565b60405180910390f35b34801561016c57600080fd5b506101756104d1565b6040516101829190612155565b60405180910390f35b34801561019757600080fd5b506101b260048036038101906101ad9190612170565b6104f7565b6040516101bf919061212b565b60405180910390f35b3480156101d457600080fd5b506101dd61068c565b6040516101ea91906121df565b60405180910390f35b3480156101ff57600080fd5b5061021a600480360381019061021591906122b5565b610695565b005b34801561022857600080fd5b50610243600480360381019061023e9190612336565b610abc565b6040516102509190612155565b60405180910390f35b34801561026557600080fd5b5061026e610b05565b005b34801561027c57600080fd5b50610285610c0e565b6040516102929190612372565b60405180910390f35b3480156102a757600080fd5b506102b0610c2a565b6040516102bd9190612372565b60405180910390f35b3480156102d257600080fd5b506102db610c53565b6040516102e89190612010565b60405180910390f35b3480156102fd57600080fd5b50610306610c90565b604051610315939291906123ac565b60405180910390f35b34801561032a57600080fd5b50610345600480360381019061034091906120d0565b610cc6565b604051610352919061212b565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d91906123e3565b610d23565b60405161038f9190612155565b60405180910390f35b6103a0610daa565b005b60606040518060400160405280600681526020017f486f626265730000000000000000000000000000000000000000000000000000815250905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104bf9190612155565b60405180910390a36001905092915050565b60006009600a6104e19190612585565b65048c273950006104f291906125d0565b905090565b6000610502846112ff565b610541576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105389061265e565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146106785781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610670919061267e565b925050819055505b610683848484611385565b90509392505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071a906126fe565b60405180910390fd5b60fa84849050111561076a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107619061276a565b60405180910390fd5b8181905084849050146107b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a9906127d6565b60405180910390fd5b6000805b85859050811015610813576009600a6107cf9190612585565b8484838181106107e2576107e16127f6565b5b905060200201356107f391906125d0565b826107fe9190612825565b9150808061080b90612859565b9150506107b6565b5080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088d906128ed565b60405180910390fd5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108e5919061267e565b9250508190555060005b85859050811015610a78576009600a6109089190612585565b84848381811061091b5761091a6127f6565b5b9050602002013561092c91906125d0565b60016000888885818110610943576109426127f6565b5b90506020020160208101906109589190612336565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109a19190612825565b925050819055508585828181106109bb576109ba6127f6565b5b90506020020160208101906109d09190612336565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a610a2c9190612585565b878786818110610a3f57610a3e6127f6565b5b90506020020135610a5091906125d0565b604051610a5d9190612155565b60405180910390a38080610a7090612859565b9150506108ef565b507f71cc7095cc35ed4701c217a8efb440732eb0737da67f6548c008ac26fba954648585905082604051610aad92919061290d565b60405180910390a15050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8a906126fe565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610c049190612372565b60405180910390a1565b600073c9ff6b2875e60f609498eeb679b811b2664d65ca905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f484f424245530000000000000000000000000000000000000000000000000000815250905090565b6000806000806000610ca06116af565b915091508181600360009054906101000a900463ffffffff169450945094505050909192565b6000610cd1336112ff565b610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d079061265e565b60405180910390fd5b610d1b338484611385565b905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2f906126fe565b60405180910390fd5b6001600860016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edb90612982565b60405180910390fd5b600860009054906101000a900460ff1615610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b906129ee565b60405180910390fd5b6000341180610f435750600047115b610f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7990612a5a565b60405180910390fd5b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffb90612ac6565b60405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611071573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110959190612afb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561111e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111429190612afb565b6040518363ffffffff1660e01b815260040161115f929190612b28565b6020604051808303816000875af115801561117e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a29190612afb565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061122b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054476116f9565b600160076000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600360006101000a81548163ffffffff021916908363ffffffff1602179055506001600860006101000a81548160ff0219169083151502179055506000600860016101000a81548160ff021916908315150217905550565b60008060009050600860009054906101000a900460ff1615611324576001905061137c565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561137b57600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec90612b9d565b60405180910390fd5b600860009054906101000a900460ff1661149657600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148c9061265e565b60405180910390fd5b5b600860019054906101000a900460ff161580156114fc5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561150a576115096117d3565b5b6000611517858585611965565b905060008184611527919061267e565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611578919061267e565b9250508190555060008211156115e75781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115d79190612825565b925050819055506115e6611b12565b5b80600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116369190612825565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161169a9190612155565b60405180910390a36001925050509392505050565b600080600080620186a09050620249f0600360009054906101000a900463ffffffff1663ffffffff16116116e7576103e891506116ed565b6101f491505b81819350935050509091565b61170282611b77565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161178996959493929190612c02565b60606040518083038185885af11580156117a7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117cc9190612c78565b5050505050565b6001600860016101000a81548160ff02191690831515021790555060006117f930610abc565b905062030d406009600a61180d9190612585565b65048c2739500061181e91906125d0565b6118289190612cfa565b81101580156118435750600860009054906101000a900460ff165b15611947576103e86009600a6118599190612585565b65048c2739500061186a91906125d0565b6118749190612cfa565b81106118a9576103e86009600a61188b9190612585565b65048c2739500061189c91906125d0565b6118a69190612cfa565b90505b6118b281611d61565b600047905060008111156119455760008073c9ff6b2875e60f609498eeb679b811b2664d65ca73ffffffffffffffffffffffffffffffffffffffff16836040516118fb90612d5c565b60006040518083038185875af1925050503d8060008114611938576040519150601f19603f3d011682016040523d82523d6000602084013e61193d565b606091505b509150915050505b505b506000600860016101000a81548160ff021916908315150217905550565b600080600860009054906101000a900460ff1680156119ce5750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a245750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b0757600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611aca5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b0657600080611ada6116af565b915091508063ffffffff168263ffffffff1686611af791906125d0565b611b019190612cfa565b925050505b5b809150509392505050565b620249f1600360009054906101000a900463ffffffff1663ffffffff1611611b75576001600360008282829054906101000a900463ffffffff16611b569190612d71565b92506101000a81548163ffffffff021916908363ffffffff1602179055505b565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611d5e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051611d559190612155565b60405180910390a35b50565b611d6a81611b77565b6000600267ffffffffffffffff811115611d8757611d86612da9565b5b604051908082528060200260200182016040528015611db55781602001602082028036833780820191505090505b5090503081600081518110611dcd57611dcc6127f6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e989190612afb565b81600181518110611eac57611eab6127f6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f4a959493929190612e96565b600060405180830381600087803b158015611f6457600080fd5b505af1158015611f78573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611fba578082015181840152602081019050611f9f565b60008484015250505050565b6000601f19601f8301169050919050565b6000611fe282611f80565b611fec8185611f8b565b9350611ffc818560208601611f9c565b61200581611fc6565b840191505092915050565b6000602082019050818103600083015261202a8184611fd7565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120678261203c565b9050919050565b6120778161205c565b811461208257600080fd5b50565b6000813590506120948161206e565b92915050565b6000819050919050565b6120ad8161209a565b81146120b857600080fd5b50565b6000813590506120ca816120a4565b92915050565b600080604083850312156120e7576120e6612032565b5b60006120f585828601612085565b9250506020612106858286016120bb565b9150509250929050565b60008115159050919050565b61212581612110565b82525050565b6000602082019050612140600083018461211c565b92915050565b61214f8161209a565b82525050565b600060208201905061216a6000830184612146565b92915050565b60008060006060848603121561218957612188612032565b5b600061219786828701612085565b93505060206121a886828701612085565b92505060406121b9868287016120bb565b9150509250925092565b600060ff82169050919050565b6121d9816121c3565b82525050565b60006020820190506121f460008301846121d0565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261221f5761221e6121fa565b5b8235905067ffffffffffffffff81111561223c5761223b6121ff565b5b60208301915083602082028301111561225857612257612204565b5b9250929050565b60008083601f840112612275576122746121fa565b5b8235905067ffffffffffffffff811115612292576122916121ff565b5b6020830191508360208202830111156122ae576122ad612204565b5b9250929050565b600080600080604085870312156122cf576122ce612032565b5b600085013567ffffffffffffffff8111156122ed576122ec612037565b5b6122f987828801612209565b9450945050602085013567ffffffffffffffff81111561231c5761231b612037565b5b6123288782880161225f565b925092505092959194509250565b60006020828403121561234c5761234b612032565b5b600061235a84828501612085565b91505092915050565b61236c8161205c565b82525050565b60006020820190506123876000830184612363565b92915050565b600063ffffffff82169050919050565b6123a68161238d565b82525050565b60006060820190506123c1600083018661239d565b6123ce602083018561239d565b6123db604083018461239d565b949350505050565b600080604083850312156123fa576123f9612032565b5b600061240885828601612085565b925050602061241985828601612085565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156124a95780860481111561248557612484612423565b5b60018516156124945780820291505b80810290506124a285612452565b9450612469565b94509492505050565b6000826124c2576001905061257e565b816124d0576000905061257e565b81600181146124e657600281146124f05761251f565b600191505061257e565b60ff84111561250257612501612423565b5b8360020a91508482111561251957612518612423565b5b5061257e565b5060208310610133831016604e8410600b84101617156125545782820a90508381111561254f5761254e612423565b5b61257e565b612561848484600161245f565b9250905081840481111561257857612577612423565b5b81810290505b9392505050565b60006125908261209a565b915061259b836121c3565b92506125c87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846124b2565b905092915050565b60006125db8261209a565b91506125e68361209a565b92508282026125f48161209a565b9150828204841483151761260b5761260a612423565b5b5092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612648601083611f8b565b915061265382612612565b602082019050919050565b600060208201905081810360008301526126778161263b565b9050919050565b60006126898261209a565b91506126948361209a565b92508282039050818111156126ac576126ab612423565b5b92915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000600082015250565b60006126e8601883611f8b565b91506126f3826126b2565b602082019050919050565b60006020820190508181036000830152612717816126db565b9050919050565b7f4d6f7265207468616e203235302077616c6c6574730000000000000000000000600082015250565b6000612754601583611f8b565b915061275f8261271e565b602082019050919050565b6000602082019050818103600083015261278381612747565b9050919050565b7f4c697374206c656e677468206d69736d61746368000000000000000000000000600082015250565b60006127c0601483611f8b565b91506127cb8261278a565b602082019050919050565b600060208201905081810360008301526127ef816127b3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006128308261209a565b915061283b8361209a565b925082820190508082111561285357612852612423565b5b92915050565b60006128648261209a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361289657612895612423565b5b600182019050919050565b7f546f6b656e2062616c616e636520746f6f206c6f770000000000000000000000600082015250565b60006128d7601583611f8b565b91506128e2826128a1565b602082019050919050565b60006020820190508181036000830152612906816128ca565b9050919050565b60006040820190506129226000830185612146565b61292f6020830184612146565b9392505050565b7f4c50206578697374730000000000000000000000000000000000000000000000600082015250565b600061296c600983611f8b565b915061297782612936565b602082019050919050565b6000602082019050818103600083015261299b8161295f565b9050919050565b7f74726164696e67206973206f70656e0000000000000000000000000000000000600082015250565b60006129d8600f83611f8b565b91506129e3826129a2565b602082019050919050565b60006020820190508181036000830152612a07816129cb565b9050919050565b7f4e6f2045544820696e20636f6e7472616374206f72206d657373616765000000600082015250565b6000612a44601d83611f8b565b9150612a4f82612a0e565b602082019050919050565b60006020820190508181036000830152612a7381612a37565b9050919050565b7f4e6f20746f6b656e7320696e20636f6e74726163740000000000000000000000600082015250565b6000612ab0601583611f8b565b9150612abb82612a7a565b602082019050919050565b60006020820190508181036000830152612adf81612aa3565b9050919050565b600081519050612af58161206e565b92915050565b600060208284031215612b1157612b10612032565b5b6000612b1f84828501612ae6565b91505092915050565b6000604082019050612b3d6000830185612363565b612b4a6020830184612363565b9392505050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b6000612b87601d83611f8b565b9150612b9282612b51565b602082019050919050565b60006020820190508181036000830152612bb681612b7a565b9050919050565b6000819050919050565b6000819050919050565b6000612bec612be7612be284612bbd565b612bc7565b61209a565b9050919050565b612bfc81612bd1565b82525050565b600060c082019050612c176000830189612363565b612c246020830188612146565b612c316040830187612bf3565b612c3e6060830186612bf3565b612c4b6080830185612363565b612c5860a0830184612146565b979650505050505050565b600081519050612c72816120a4565b92915050565b600080600060608486031215612c9157612c90612032565b5b6000612c9f86828701612c63565b9350506020612cb086828701612c63565b9250506040612cc186828701612c63565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d058261209a565b9150612d108361209a565b925082612d2057612d1f612ccb565b5b828204905092915050565b600081905092915050565b50565b6000612d46600083612d2b565b9150612d5182612d36565b600082019050919050565b6000612d6782612d39565b9150819050919050565b6000612d7c8261238d565b9150612d878361238d565b9250828201905063ffffffff811115612da357612da2612423565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612e0d8161205c565b82525050565b6000612e1f8383612e04565b60208301905092915050565b6000602082019050919050565b6000612e4382612dd8565b612e4d8185612de3565b9350612e5883612df4565b8060005b83811015612e89578151612e708882612e13565b9750612e7b83612e2b565b925050600181019050612e5c565b5085935050505092915050565b600060a082019050612eab6000830188612146565b612eb86020830187612bf3565b8181036040830152612eca8186612e38565b9050612ed96060830185612363565b612ee66080830184612146565b969550505050505056fea26469706673582212204f321a0eba1ade82824672724d2faa686c150371b0c842698259cac39e9cc5af64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106100ec5760003560e01c8063715018a61161008a57806399c8d5561161005957806399c8d556146102f1578063a9059cbb1461031e578063dd62ed3e1461035b578063e8078d9414610398576100f3565b8063715018a61461025957806375f0a874146102705780638da5cb5b1461029b57806395d89b41146102c6576100f3565b806323b872dd116100c657806323b872dd1461018b578063313ce567146101c857806367243482146101f357806370a082311461021c576100f3565b806306fdde03146100f8578063095ea7b31461012357806318160ddd14610160576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061010d6103a2565b60405161011a9190612010565b60405180910390f35b34801561012f57600080fd5b5061014a600480360381019061014591906120d0565b6103df565b604051610157919061212b565b60405180910390f35b34801561016c57600080fd5b506101756104d1565b6040516101829190612155565b60405180910390f35b34801561019757600080fd5b506101b260048036038101906101ad9190612170565b6104f7565b6040516101bf919061212b565b60405180910390f35b3480156101d457600080fd5b506101dd61068c565b6040516101ea91906121df565b60405180910390f35b3480156101ff57600080fd5b5061021a600480360381019061021591906122b5565b610695565b005b34801561022857600080fd5b50610243600480360381019061023e9190612336565b610abc565b6040516102509190612155565b60405180910390f35b34801561026557600080fd5b5061026e610b05565b005b34801561027c57600080fd5b50610285610c0e565b6040516102929190612372565b60405180910390f35b3480156102a757600080fd5b506102b0610c2a565b6040516102bd9190612372565b60405180910390f35b3480156102d257600080fd5b506102db610c53565b6040516102e89190612010565b60405180910390f35b3480156102fd57600080fd5b50610306610c90565b604051610315939291906123ac565b60405180910390f35b34801561032a57600080fd5b50610345600480360381019061034091906120d0565b610cc6565b604051610352919061212b565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d91906123e3565b610d23565b60405161038f9190612155565b60405180910390f35b6103a0610daa565b005b60606040518060400160405280600681526020017f486f626265730000000000000000000000000000000000000000000000000000815250905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104bf9190612155565b60405180910390a36001905092915050565b60006009600a6104e19190612585565b65048c273950006104f291906125d0565b905090565b6000610502846112ff565b610541576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105389061265e565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146106785781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610670919061267e565b925050819055505b610683848484611385565b90509392505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071a906126fe565b60405180910390fd5b60fa84849050111561076a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107619061276a565b60405180910390fd5b8181905084849050146107b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a9906127d6565b60405180910390fd5b6000805b85859050811015610813576009600a6107cf9190612585565b8484838181106107e2576107e16127f6565b5b905060200201356107f391906125d0565b826107fe9190612825565b9150808061080b90612859565b9150506107b6565b5080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088d906128ed565b60405180910390fd5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108e5919061267e565b9250508190555060005b85859050811015610a78576009600a6109089190612585565b84848381811061091b5761091a6127f6565b5b9050602002013561092c91906125d0565b60016000888885818110610943576109426127f6565b5b90506020020160208101906109589190612336565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109a19190612825565b925050819055508585828181106109bb576109ba6127f6565b5b90506020020160208101906109d09190612336565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a610a2c9190612585565b878786818110610a3f57610a3e6127f6565b5b90506020020135610a5091906125d0565b604051610a5d9190612155565b60405180910390a38080610a7090612859565b9150506108ef565b507f71cc7095cc35ed4701c217a8efb440732eb0737da67f6548c008ac26fba954648585905082604051610aad92919061290d565b60405180910390a15050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8a906126fe565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610c049190612372565b60405180910390a1565b600073c9ff6b2875e60f609498eeb679b811b2664d65ca905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f484f424245530000000000000000000000000000000000000000000000000000815250905090565b6000806000806000610ca06116af565b915091508181600360009054906101000a900463ffffffff169450945094505050909192565b6000610cd1336112ff565b610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d079061265e565b60405180910390fd5b610d1b338484611385565b905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2f906126fe565b60405180910390fd5b6001600860016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edb90612982565b60405180910390fd5b600860009054906101000a900460ff1615610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b906129ee565b60405180910390fd5b6000341180610f435750600047115b610f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7990612a5a565b60405180910390fd5b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffb90612ac6565b60405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611071573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110959190612afb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561111e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111429190612afb565b6040518363ffffffff1660e01b815260040161115f929190612b28565b6020604051808303816000875af115801561117e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a29190612afb565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061122b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054476116f9565b600160076000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600360006101000a81548163ffffffff021916908363ffffffff1602179055506001600860006101000a81548160ff0219169083151502179055506000600860016101000a81548160ff021916908315150217905550565b60008060009050600860009054906101000a900460ff1615611324576001905061137c565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561137b57600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec90612b9d565b60405180910390fd5b600860009054906101000a900460ff1661149657600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148c9061265e565b60405180910390fd5b5b600860019054906101000a900460ff161580156114fc5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561150a576115096117d3565b5b6000611517858585611965565b905060008184611527919061267e565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611578919061267e565b9250508190555060008211156115e75781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115d79190612825565b925050819055506115e6611b12565b5b80600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116369190612825565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161169a9190612155565b60405180910390a36001925050509392505050565b600080600080620186a09050620249f0600360009054906101000a900463ffffffff1663ffffffff16116116e7576103e891506116ed565b6101f491505b81819350935050509091565b61170282611b77565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161178996959493929190612c02565b60606040518083038185885af11580156117a7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117cc9190612c78565b5050505050565b6001600860016101000a81548160ff02191690831515021790555060006117f930610abc565b905062030d406009600a61180d9190612585565b65048c2739500061181e91906125d0565b6118289190612cfa565b81101580156118435750600860009054906101000a900460ff165b15611947576103e86009600a6118599190612585565b65048c2739500061186a91906125d0565b6118749190612cfa565b81106118a9576103e86009600a61188b9190612585565b65048c2739500061189c91906125d0565b6118a69190612cfa565b90505b6118b281611d61565b600047905060008111156119455760008073c9ff6b2875e60f609498eeb679b811b2664d65ca73ffffffffffffffffffffffffffffffffffffffff16836040516118fb90612d5c565b60006040518083038185875af1925050503d8060008114611938576040519150601f19603f3d011682016040523d82523d6000602084013e61193d565b606091505b509150915050505b505b506000600860016101000a81548160ff021916908315150217905550565b600080600860009054906101000a900460ff1680156119ce5750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a245750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b0757600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611aca5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b0657600080611ada6116af565b915091508063ffffffff168263ffffffff1686611af791906125d0565b611b019190612cfa565b925050505b5b809150509392505050565b620249f1600360009054906101000a900463ffffffff1663ffffffff1611611b75576001600360008282829054906101000a900463ffffffff16611b569190612d71565b92506101000a81548163ffffffff021916908363ffffffff1602179055505b565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611d5e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051611d559190612155565b60405180910390a35b50565b611d6a81611b77565b6000600267ffffffffffffffff811115611d8757611d86612da9565b5b604051908082528060200260200182016040528015611db55781602001602082028036833780820191505090505b5090503081600081518110611dcd57611dcc6127f6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e989190612afb565b81600181518110611eac57611eab6127f6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f4a959493929190612e96565b600060405180830381600087803b158015611f6457600080fd5b505af1158015611f78573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611fba578082015181840152602081019050611f9f565b60008484015250505050565b6000601f19601f8301169050919050565b6000611fe282611f80565b611fec8185611f8b565b9350611ffc818560208601611f9c565b61200581611fc6565b840191505092915050565b6000602082019050818103600083015261202a8184611fd7565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120678261203c565b9050919050565b6120778161205c565b811461208257600080fd5b50565b6000813590506120948161206e565b92915050565b6000819050919050565b6120ad8161209a565b81146120b857600080fd5b50565b6000813590506120ca816120a4565b92915050565b600080604083850312156120e7576120e6612032565b5b60006120f585828601612085565b9250506020612106858286016120bb565b9150509250929050565b60008115159050919050565b61212581612110565b82525050565b6000602082019050612140600083018461211c565b92915050565b61214f8161209a565b82525050565b600060208201905061216a6000830184612146565b92915050565b60008060006060848603121561218957612188612032565b5b600061219786828701612085565b93505060206121a886828701612085565b92505060406121b9868287016120bb565b9150509250925092565b600060ff82169050919050565b6121d9816121c3565b82525050565b60006020820190506121f460008301846121d0565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261221f5761221e6121fa565b5b8235905067ffffffffffffffff81111561223c5761223b6121ff565b5b60208301915083602082028301111561225857612257612204565b5b9250929050565b60008083601f840112612275576122746121fa565b5b8235905067ffffffffffffffff811115612292576122916121ff565b5b6020830191508360208202830111156122ae576122ad612204565b5b9250929050565b600080600080604085870312156122cf576122ce612032565b5b600085013567ffffffffffffffff8111156122ed576122ec612037565b5b6122f987828801612209565b9450945050602085013567ffffffffffffffff81111561231c5761231b612037565b5b6123288782880161225f565b925092505092959194509250565b60006020828403121561234c5761234b612032565b5b600061235a84828501612085565b91505092915050565b61236c8161205c565b82525050565b60006020820190506123876000830184612363565b92915050565b600063ffffffff82169050919050565b6123a68161238d565b82525050565b60006060820190506123c1600083018661239d565b6123ce602083018561239d565b6123db604083018461239d565b949350505050565b600080604083850312156123fa576123f9612032565b5b600061240885828601612085565b925050602061241985828601612085565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156124a95780860481111561248557612484612423565b5b60018516156124945780820291505b80810290506124a285612452565b9450612469565b94509492505050565b6000826124c2576001905061257e565b816124d0576000905061257e565b81600181146124e657600281146124f05761251f565b600191505061257e565b60ff84111561250257612501612423565b5b8360020a91508482111561251957612518612423565b5b5061257e565b5060208310610133831016604e8410600b84101617156125545782820a90508381111561254f5761254e612423565b5b61257e565b612561848484600161245f565b9250905081840481111561257857612577612423565b5b81810290505b9392505050565b60006125908261209a565b915061259b836121c3565b92506125c87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846124b2565b905092915050565b60006125db8261209a565b91506125e68361209a565b92508282026125f48161209a565b9150828204841483151761260b5761260a612423565b5b5092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612648601083611f8b565b915061265382612612565b602082019050919050565b600060208201905081810360008301526126778161263b565b9050919050565b60006126898261209a565b91506126948361209a565b92508282039050818111156126ac576126ab612423565b5b92915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000600082015250565b60006126e8601883611f8b565b91506126f3826126b2565b602082019050919050565b60006020820190508181036000830152612717816126db565b9050919050565b7f4d6f7265207468616e203235302077616c6c6574730000000000000000000000600082015250565b6000612754601583611f8b565b915061275f8261271e565b602082019050919050565b6000602082019050818103600083015261278381612747565b9050919050565b7f4c697374206c656e677468206d69736d61746368000000000000000000000000600082015250565b60006127c0601483611f8b565b91506127cb8261278a565b602082019050919050565b600060208201905081810360008301526127ef816127b3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006128308261209a565b915061283b8361209a565b925082820190508082111561285357612852612423565b5b92915050565b60006128648261209a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361289657612895612423565b5b600182019050919050565b7f546f6b656e2062616c616e636520746f6f206c6f770000000000000000000000600082015250565b60006128d7601583611f8b565b91506128e2826128a1565b602082019050919050565b60006020820190508181036000830152612906816128ca565b9050919050565b60006040820190506129226000830185612146565b61292f6020830184612146565b9392505050565b7f4c50206578697374730000000000000000000000000000000000000000000000600082015250565b600061296c600983611f8b565b915061297782612936565b602082019050919050565b6000602082019050818103600083015261299b8161295f565b9050919050565b7f74726164696e67206973206f70656e0000000000000000000000000000000000600082015250565b60006129d8600f83611f8b565b91506129e3826129a2565b602082019050919050565b60006020820190508181036000830152612a07816129cb565b9050919050565b7f4e6f2045544820696e20636f6e7472616374206f72206d657373616765000000600082015250565b6000612a44601d83611f8b565b9150612a4f82612a0e565b602082019050919050565b60006020820190508181036000830152612a7381612a37565b9050919050565b7f4e6f20746f6b656e7320696e20636f6e74726163740000000000000000000000600082015250565b6000612ab0601583611f8b565b9150612abb82612a7a565b602082019050919050565b60006020820190508181036000830152612adf81612aa3565b9050919050565b600081519050612af58161206e565b92915050565b600060208284031215612b1157612b10612032565b5b6000612b1f84828501612ae6565b91505092915050565b6000604082019050612b3d6000830185612363565b612b4a6020830184612363565b9392505050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b6000612b87601d83611f8b565b9150612b9282612b51565b602082019050919050565b60006020820190508181036000830152612bb681612b7a565b9050919050565b6000819050919050565b6000819050919050565b6000612bec612be7612be284612bbd565b612bc7565b61209a565b9050919050565b612bfc81612bd1565b82525050565b600060c082019050612c176000830189612363565b612c246020830188612146565b612c316040830187612bf3565b612c3e6060830186612bf3565b612c4b6080830185612363565b612c5860a0830184612146565b979650505050505050565b600081519050612c72816120a4565b92915050565b600080600060608486031215612c9157612c90612032565b5b6000612c9f86828701612c63565b9350506020612cb086828701612c63565b9250506040612cc186828701612c63565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d058261209a565b9150612d108361209a565b925082612d2057612d1f612ccb565b5b828204905092915050565b600081905092915050565b50565b6000612d46600083612d2b565b9150612d5182612d36565b600082019050919050565b6000612d6782612d39565b9150819050919050565b6000612d7c8261238d565b9150612d878361238d565b9250828201905063ffffffff811115612da357612da2612423565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612e0d8161205c565b82525050565b6000612e1f8383612e04565b60208301905092915050565b6000602082019050919050565b6000612e4382612dd8565b612e4d8185612de3565b9350612e5883612df4565b8060005b83811015612e89578151612e708882612e13565b9750612e7b83612e2b565b925050600181019050612e5c565b5085935050505092915050565b600060a082019050612eab6000830188612146565b612eb86020830187612bf3565b8181036040830152612eca8186612e38565b9050612ed96060830185612363565b612ee66080830184612146565b969550505050505056fea26469706673582212204f321a0eba1ade82824672724d2faa686c150371b0c842698259cac39e9cc5af64736f6c63430008130033

Deployed Bytecode Sourcemap

1397:8752:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3299:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3637:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3029:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4090:367;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3123:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9197:949;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3385:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1253:137;;;;;;;;;;;;;:::i;:::-;;8105:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1182:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3209:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6914:238;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;3861:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3496:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4790:632;;;:::i;:::-;;3299:80;3347:13;3371:5;;;;;;;;;;;;;;;;;3364:12;;3299:80;:::o;3637:216::-;3712:4;3764:6;3729:11;:23;3741:10;3729:23;;;;;;;;;;;;;;;:32;3753:7;3729:32;;;;;;;;;;;;;;;:41;;;;3807:7;3786:37;;3795:10;3786:37;;;3816:6;3786:37;;;;;;:::i;:::-;;;;;;;;3841:4;3834:11;;3637:216;;;;:::o;3029:88::-;3084:7;1588:1;1657:2;:13;;;;:::i;:::-;1636:17;:35;;;;:::i;:::-;3095:19;;3029:88;:::o;4090:367::-;4190:4;4215:25;4233:6;4215:17;:25::i;:::-;4207:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;4310:17;4275:11;:19;4287:6;4275:19;;;;;;;;;;;;;;;:31;4295:10;4275:31;;;;;;;;;;;;;;;;:52;4272:124;;4378:6;4343:11;:19;4355:6;4343:19;;;;;;;;;;;;;;;:31;4363:10;4343:31;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;4272:124;4413:36;4423:6;4431:9;4442:6;4413:9;:36::i;:::-;4406:43;;4090:367;;;;;:::o;3123:80::-;3175:5;1588:1;3184:16;;3123:80;:::o;9197:949::-;1135:6;;;;;;;;;;1121:20;;:10;:20;;;1113:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9335:3:::1;9315:9;;:16;;:23;;9307:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;9402:12;;:19;;9382:9;;:16;;:39;9374:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9458:20;9497:6:::0;9493:116:::1;9511:9;;:16;;9507:1;:20;9493:116;;;1588:1;9583:2;:13;;;;:::i;:::-;9565:12;;9578:1;9565:15;;;;;;;:::i;:::-;;;;;;;;:31;;;;:::i;:::-;9548:49;;;;;:::i;:::-;;;9529:3;;;;;:::i;:::-;;;;9493:116;;;;9662:12;9637:9;:21;9647:10;9637:21;;;;;;;;;;;;;;;;:37;;9629:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9736:12;9711:9;:21;9721:10;9711:21;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;9853:6;9849:224;9867:9;;:16;;9863:1;:20;9849:224;;;1588:1;9950:2;:13;;;;:::i;:::-;9932:12;;9945:1;9932:15;;;;;;;:::i;:::-;;;;;;;;:31;;;;:::i;:::-;9904:9;:23;9914:9;;9924:1;9914:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;9904:23;;;;;;;;;;;;;;;;:60;;;;;;;:::i;:::-;;;;;;;;10005:9;;10015:1;10005:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;9984:70;;9993:10;9984:70;;;1588:1;10038:2;:13;;;;:::i;:::-;10020:12;;10033:1;10020:15;;;;;;;:::i;:::-;;;;;;;;:31;;;;:::i;:::-;9984:70;;;;;;:::i;:::-;;;;;;;;9885:3;;;;;:::i;:::-;;;;9849:224;;;;10090:48;10107:9;;:16;;10125:12;10090:48;;;;;;;:::i;:::-;;;;;;;;9296:850;9197:949:::0;;;;:::o;3385:105::-;3451:7;3469:9;:18;3479:7;3469:18;;;;;;;;;;;;;;;;3462:25;;3385:105;;;:::o;1253:137::-;1135:6;;;;;;;;;;1121:20;;:10;:20;;;1113:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;1330:1:::1;1313:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1349:32;1378:1;1349:32;;;;;;:::i;:::-;;;;;;;;1253:137::o:0;8105:101::-;8155:7;1904:42;8175:23;;8105:101;:::o;1182:65::-;1220:7;1238:6;;;;;;;;;;;1231:13;;1182:65;:::o;3209:84::-;3259:13;3283:7;;;;;;;;;;;;;;;;;3276:14;;3209:84;:::o;6914:238::-;6952:19;6973:21;6996:19;7029:16;7047:18;7069:20;:18;:20::i;:::-;7028:61;;;;7108:9;7119:11;7132;;;;;;;;;;;7100:44;;;;;;;;6914:238;;;:::o;3861:221::-;3941:4;3966:29;3984:10;3966:17;:29::i;:::-;3958:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;4034:40;4044:10;4056:9;4067:6;4034:9;:40::i;:::-;4027:47;;3861:221;;;;:::o;3496:133::-;3580:7;3598:11;:19;3610:6;3598:19;;;;;;;;;;;;;;;:28;3618:7;3598:28;;;;;;;;;;;;;;;;3591:35;;3496:133;;;;:::o;4790:632::-;1135:6;;;;;;;;;;1121:20;;:10;:20;;;1113:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;2534:4:::1;2521:10;;:17;;;;;;;;;;;;;;;;;;4894:1:::2;4872:24;;:10;;;;;;;;;;;:24;;;4864:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4930:12;;;;;;;;;;;4929:13;4921:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;4993:1;4981:9;:13;:40;;;;5020:1;4998:21;:23;4981:40;4973:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;5099:1;5074:9;:24;5092:4;5074:24;;;;;;;;;;;;;;;;:26;5066:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;5168:18;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5150:58;;;5217:4;5224:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5150:100;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5137:10;;:113;;;;;;;;;;;;;;;;;;5261:62;5275:9;:24;5293:4;5275:24;;;;;;;;;;;;;;;;5301:21;5261:13;:62::i;:::-;5354:4;5334:5;:17;5340:10;;;;;;;;;;;5334:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;5383:1;5369:11;;:15;;;;;;;;;;;;;;;;;;5410:4;5395:12;;:19;;;;;;;;;;;;;;;;;;2576:5:::1;2563:10;;:18;;;;;;;;;;;;;;;;;;4790:632::o:0;6455:258::-;6520:4;6536:16;6555:5;6536:24;;6576:12;;;;;;;;;;;6571:103;;;6607:4;6593:18;;6571:103;;;6634:7;:15;6642:6;6634:15;;;;;;;;;;;;;;;;;;;;;;;;;6630:44;;;6667:4;6653:18;;6630:44;6571:103;6694:11;6687:18;;;6455:258;;;:::o;5692:755::-;5780:4;5823:1;5805:20;;:6;:20;;;5797:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;5877:12;;;;;;;;;;;5872:68;;5901:7;:15;5909:6;5901:15;;;;;;;;;;;;;;;;;;;;;;;;;5893:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;5872:68;5956:10;;;;;;;;;;;5955:11;:31;;;;;5970:5;:16;5976:9;5970:16;;;;;;;;;;;;;;;;;;;;;;;;;5955:31;5950:64;;;5991:20;:18;:20::i;:::-;5950:64;6026:18;6047:40;6061:6;6069:9;6080:6;6047:13;:40::i;:::-;6026:61;;6098:23;6133:10;6124:6;:19;;;;:::i;:::-;6098:45;;6175:6;6154:9;:17;6164:6;6154:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;6210:1;6197:10;:14;6192:125;;;6258:10;6230:9;:24;6248:4;6230:24;;;;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;;;;;;;;6284:21;:19;:21::i;:::-;6192:125;6351:15;6327:9;:20;6337:9;6327:20;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;6399:9;6382:35;;6391:6;6382:35;;;6410:6;6382:35;;;;;;:::i;:::-;;;;;;;;6435:4;6428:11;;;;5692:755;;;;;:::o;7160:448::-;7212:16;7230:18;7261:19;7291:21;7315:7;7291:31;;7355:7;7340:11;;;;;;;;;;;:22;;;7335:216;;7395:4;7380:19;;7335:216;;;7491:3;7476:18;;7335:216;7571:12;7585:14;7563:37;;;;;;7160:448;;:::o;5430:254::-;5518:28;5533:12;5518:14;:28::i;:::-;5557:18;;;;;;;;;;;:34;;;5599:13;5624:4;5631:12;5645:1;5648;5651:6;;;;;;;;;;5659:15;5557:119;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5430:254;;:::o;8214:601::-;2534:4;2521:10;;:17;;;;;;;;;;;;;;;;;;8275:27:::1;8305:24;8323:4;8305:9;:24::i;:::-;8275:54;;2008:6;1588:1;1657:2;:13;;;;:::i;:::-;1636:17;:35;;;;:::i;:::-;1993:21;;;;:::i;:::-;8347:19;:34;;:50;;;;;8385:12;;;;;;;;;;;8347:50;8342:466;;;2075:4;1588:1;1657:2;:13;;;;:::i;:::-;1636:17;:35;;;;:::i;:::-;2060:19;;;;:::i;:::-;8420;:34;8415:80;;2075:4;1588:1;1657:2;:13;;;;:::i;:::-;1636:17;:35;;;;:::i;:::-;2060:19;;;;:::i;:::-;8459:33;;8415:80;8523:41;8544:19;8523:20;:41::i;:::-;8581:27;8611:21;8581:51;;8672:1;8650:19;:23;8647:150;;;8696:9;8707:17:::0;1904:42:::1;8728:21;;8757:19;8728:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8695:86;;;;8675:122;;8647:150;8400:408;8342:466;8264:551;2576:5:::0;2563:10;;:18;;;;;;;;;;;;;;;;;;8214:601::o;7616:481::-;7713:7;7733:17;7776:12;;;;;;;;;;;:32;;;;;7793:7;:15;7801:6;7793:15;;;;;;;;;;;;;;;;;;;;;;;;;7792:16;7776:32;:55;;;;;7813:7;:18;7821:9;7813:18;;;;;;;;;;;;;;;;;;;;;;;;;7812:19;7776:55;7771:290;;;7855:5;:13;7861:6;7855:13;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;7872:5;:16;7878:9;7872:16;;;;;;;;;;;;;;;;;;;;;;;;;7855:33;7850:200;;;7911:16;7929:18;7951:20;:18;:20::i;:::-;7910:61;;;;8023:11;8002:32;;8011:9;8002:18;;:6;:18;;;;:::i;:::-;:32;;;;:::i;:::-;7990:44;;7891:159;;7850:200;7771:290;8080:9;8073:16;;;7616:481;;;;;:::o;6721:185::-;6791:7;6776:11;;;;;;;;;;;:22;;;6771:127;;6885:1;6870:11;;:16;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6771:127;6721:185::o;4465:317::-;4585:12;4536:11;:26;4556:4;4536:26;;;;;;;;;;;;;;;:46;2192:42;4536:46;;;;;;;;;;;;;;;;:61;4531:244;;;4664:17;4615:11;:26;4635:4;4615:26;;;;;;;;;;;;;;;:46;2192:42;4615:46;;;;;;;;;;;;;;;:66;;;;2192:42;4701:62;;4718:4;4701:62;;;4745:17;4701:62;;;;;;:::i;:::-;;;;;;;;4531:244;4465:317;:::o;8823:366::-;8893:27;8908:11;8893:14;:27::i;:::-;8931:21;8969:1;8955:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8931:40;;9000:4;8982;8987:1;8982:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9026:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9016:4;9021:1;9016:7;;;;;;;;:::i;:::-;;;;;;;:35;;;;;;;;;;;9062:18;;;;;;;;;;;:69;;;9132:11;9144:1;9146:4;9159;9165:15;9062:119;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8882:307;8823:366;:::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:93::-;8067:7;8107:10;8100:5;8096:22;8085:33;;8031:93;;;:::o;8130:115::-;8215:23;8232:5;8215:23;:::i;:::-;8210:3;8203:36;8130:115;;:::o;8251:430::-;8394:4;8432:2;8421:9;8417:18;8409:26;;8445:69;8511:1;8500:9;8496:17;8487:6;8445:69;:::i;:::-;8524:70;8590:2;8579:9;8575:18;8566:6;8524:70;:::i;:::-;8604;8670:2;8659:9;8655:18;8646:6;8604:70;:::i;:::-;8251:430;;;;;;:::o;8687:474::-;8755:6;8763;8812:2;8800:9;8791:7;8787:23;8783:32;8780:119;;;8818:79;;:::i;:::-;8780:119;8938:1;8963:53;9008:7;8999:6;8988:9;8984:22;8963:53;:::i;:::-;8953:63;;8909:117;9065:2;9091:53;9136:7;9127:6;9116:9;9112:22;9091:53;:::i;:::-;9081:63;;9036:118;8687:474;;;;;:::o;9167:180::-;9215:77;9212:1;9205:88;9312:4;9309:1;9302:15;9336:4;9333:1;9326:15;9353:102;9395:8;9442:5;9439:1;9435:13;9414:34;;9353:102;;;:::o;9461:848::-;9522:5;9529:4;9553:6;9544:15;;9577:5;9568:14;;9591:712;9612:1;9602:8;9599:15;9591:712;;;9707:4;9702:3;9698:14;9692:4;9689:24;9686:50;;;9716:18;;:::i;:::-;9686:50;9766:1;9756:8;9752:16;9749:451;;;10181:4;10174:5;10170:16;10161:25;;9749:451;10231:4;10225;10221:15;10213:23;;10261:32;10284:8;10261:32;:::i;:::-;10249:44;;9591:712;;;9461:848;;;;;;;:::o;10315:1073::-;10369:5;10560:8;10550:40;;10581:1;10572:10;;10583:5;;10550:40;10609:4;10599:36;;10626:1;10617:10;;10628:5;;10599:36;10695:4;10743:1;10738:27;;;;10779:1;10774:191;;;;10688:277;;10738:27;10756:1;10747:10;;10758:5;;;10774:191;10819:3;10809:8;10806:17;10803:43;;;10826:18;;:::i;:::-;10803:43;10875:8;10872:1;10868:16;10859:25;;10910:3;10903:5;10900:14;10897:40;;;10917:18;;:::i;:::-;10897:40;10950:5;;;10688:277;;11074:2;11064:8;11061:16;11055:3;11049:4;11046:13;11042:36;11024:2;11014:8;11011:16;11006:2;11000:4;10997:12;10993:35;10977:111;10974:246;;;11130:8;11124:4;11120:19;11111:28;;11165:3;11158:5;11155:14;11152:40;;;11172:18;;:::i;:::-;11152:40;11205:5;;10974:246;11245:42;11283:3;11273:8;11267:4;11264:1;11245:42;:::i;:::-;11230:57;;;;11319:4;11314:3;11310:14;11303:5;11300:25;11297:51;;;11328:18;;:::i;:::-;11297:51;11377:4;11370:5;11366:16;11357:25;;10315:1073;;;;;;:::o;11394:281::-;11452:5;11476:23;11494:4;11476:23;:::i;:::-;11468:31;;11520:25;11536:8;11520:25;:::i;:::-;11508:37;;11564:104;11601:66;11591:8;11585:4;11564:104;:::i;:::-;11555:113;;11394:281;;;;:::o;11681:410::-;11721:7;11744:20;11762:1;11744:20;:::i;:::-;11739:25;;11778:20;11796:1;11778:20;:::i;:::-;11773:25;;11833:1;11830;11826:9;11855:30;11873:11;11855:30;:::i;:::-;11844:41;;12034:1;12025:7;12021:15;12018:1;12015:22;11995:1;11988:9;11968:83;11945:139;;12064:18;;:::i;:::-;11945:139;11729:362;11681:410;;;;:::o;12097:166::-;12237:18;12233:1;12225:6;12221:14;12214:42;12097:166;:::o;12269:366::-;12411:3;12432:67;12496:2;12491:3;12432:67;:::i;:::-;12425:74;;12508:93;12597:3;12508:93;:::i;:::-;12626:2;12621:3;12617:12;12610:19;;12269:366;;;:::o;12641:419::-;12807:4;12845:2;12834:9;12830:18;12822:26;;12894:9;12888:4;12884:20;12880:1;12869:9;12865:17;12858:47;12922:131;13048:4;12922:131;:::i;:::-;12914:139;;12641:419;;;:::o;13066:194::-;13106:4;13126:20;13144:1;13126:20;:::i;:::-;13121:25;;13160:20;13178:1;13160:20;:::i;:::-;13155:25;;13204:1;13201;13197:9;13189:17;;13228:1;13222:4;13219:11;13216:37;;;13233:18;;:::i;:::-;13216:37;13066:194;;;;:::o;13266:174::-;13406:26;13402:1;13394:6;13390:14;13383:50;13266:174;:::o;13446:366::-;13588:3;13609:67;13673:2;13668:3;13609:67;:::i;:::-;13602:74;;13685:93;13774:3;13685:93;:::i;:::-;13803:2;13798:3;13794:12;13787:19;;13446:366;;;:::o;13818:419::-;13984:4;14022:2;14011:9;14007:18;13999:26;;14071:9;14065:4;14061:20;14057:1;14046:9;14042:17;14035:47;14099:131;14225:4;14099:131;:::i;:::-;14091:139;;13818:419;;;:::o;14243:171::-;14383:23;14379:1;14371:6;14367:14;14360:47;14243:171;:::o;14420:366::-;14562:3;14583:67;14647:2;14642:3;14583:67;:::i;:::-;14576:74;;14659:93;14748:3;14659:93;:::i;:::-;14777:2;14772:3;14768:12;14761:19;;14420:366;;;:::o;14792:419::-;14958:4;14996:2;14985:9;14981:18;14973:26;;15045:9;15039:4;15035:20;15031:1;15020:9;15016:17;15009:47;15073:131;15199:4;15073:131;:::i;:::-;15065:139;;14792:419;;;:::o;15217:170::-;15357:22;15353:1;15345:6;15341:14;15334:46;15217:170;:::o;15393:366::-;15535:3;15556:67;15620:2;15615:3;15556:67;:::i;:::-;15549:74;;15632:93;15721:3;15632:93;:::i;:::-;15750:2;15745:3;15741:12;15734:19;;15393:366;;;:::o;15765:419::-;15931:4;15969:2;15958:9;15954:18;15946:26;;16018:9;16012:4;16008:20;16004:1;15993:9;15989:17;15982:47;16046:131;16172:4;16046:131;:::i;:::-;16038:139;;15765:419;;;:::o;16190:180::-;16238:77;16235:1;16228:88;16335:4;16332:1;16325:15;16359:4;16356:1;16349:15;16376:191;16416:3;16435:20;16453:1;16435:20;:::i;:::-;16430:25;;16469:20;16487:1;16469:20;:::i;:::-;16464:25;;16512:1;16509;16505:9;16498:16;;16533:3;16530:1;16527:10;16524:36;;;16540:18;;:::i;:::-;16524:36;16376:191;;;;:::o;16573:233::-;16612:3;16635:24;16653:5;16635:24;:::i;:::-;16626:33;;16681:66;16674:5;16671:77;16668:103;;16751:18;;:::i;:::-;16668:103;16798:1;16791:5;16787:13;16780:20;;16573:233;;;:::o;16812:171::-;16952:23;16948:1;16940:6;16936:14;16929:47;16812:171;:::o;16989:366::-;17131:3;17152:67;17216:2;17211:3;17152:67;:::i;:::-;17145:74;;17228:93;17317:3;17228:93;:::i;:::-;17346:2;17341:3;17337:12;17330:19;;16989:366;;;:::o;17361:419::-;17527:4;17565:2;17554:9;17550:18;17542:26;;17614:9;17608:4;17604:20;17600:1;17589:9;17585:17;17578:47;17642:131;17768:4;17642:131;:::i;:::-;17634:139;;17361:419;;;:::o;17786:332::-;17907:4;17945:2;17934:9;17930:18;17922:26;;17958:71;18026:1;18015:9;18011:17;18002:6;17958:71;:::i;:::-;18039:72;18107:2;18096:9;18092:18;18083:6;18039:72;:::i;:::-;17786:332;;;;;:::o;18124:159::-;18264:11;18260:1;18252:6;18248:14;18241:35;18124:159;:::o;18289:365::-;18431:3;18452:66;18516:1;18511:3;18452:66;:::i;:::-;18445:73;;18527:93;18616:3;18527:93;:::i;:::-;18645:2;18640:3;18636:12;18629:19;;18289:365;;;:::o;18660:419::-;18826:4;18864:2;18853:9;18849:18;18841:26;;18913:9;18907:4;18903:20;18899:1;18888:9;18884:17;18877:47;18941:131;19067:4;18941:131;:::i;:::-;18933:139;;18660:419;;;:::o;19085:165::-;19225:17;19221:1;19213:6;19209:14;19202:41;19085:165;:::o;19256:366::-;19398:3;19419:67;19483:2;19478:3;19419:67;:::i;:::-;19412:74;;19495:93;19584:3;19495:93;:::i;:::-;19613:2;19608:3;19604:12;19597:19;;19256:366;;;:::o;19628:419::-;19794:4;19832:2;19821:9;19817:18;19809:26;;19881:9;19875:4;19871:20;19867:1;19856:9;19852:17;19845:47;19909:131;20035:4;19909:131;:::i;:::-;19901:139;;19628:419;;;:::o;20053:179::-;20193:31;20189:1;20181:6;20177:14;20170:55;20053:179;:::o;20238:366::-;20380:3;20401:67;20465:2;20460:3;20401:67;:::i;:::-;20394:74;;20477:93;20566:3;20477:93;:::i;:::-;20595:2;20590:3;20586:12;20579:19;;20238:366;;;:::o;20610:419::-;20776:4;20814:2;20803:9;20799:18;20791:26;;20863:9;20857:4;20853:20;20849:1;20838:9;20834:17;20827:47;20891:131;21017:4;20891:131;:::i;:::-;20883:139;;20610:419;;;:::o;21035:171::-;21175:23;21171:1;21163:6;21159:14;21152:47;21035:171;:::o;21212:366::-;21354:3;21375:67;21439:2;21434:3;21375:67;:::i;:::-;21368:74;;21451:93;21540:3;21451:93;:::i;:::-;21569:2;21564:3;21560:12;21553:19;;21212:366;;;:::o;21584:419::-;21750:4;21788:2;21777:9;21773:18;21765:26;;21837:9;21831:4;21827:20;21823:1;21812:9;21808:17;21801:47;21865:131;21991:4;21865:131;:::i;:::-;21857:139;;21584:419;;;:::o;22009:143::-;22066:5;22097:6;22091:13;22082:22;;22113:33;22140:5;22113:33;:::i;:::-;22009:143;;;;:::o;22158:351::-;22228:6;22277:2;22265:9;22256:7;22252:23;22248:32;22245:119;;;22283:79;;:::i;:::-;22245:119;22403:1;22428:64;22484:7;22475:6;22464:9;22460:22;22428:64;:::i;:::-;22418:74;;22374:128;22158:351;;;;:::o;22515:332::-;22636:4;22674:2;22663:9;22659:18;22651:26;;22687:71;22755:1;22744:9;22740:17;22731:6;22687:71;:::i;:::-;22768:72;22836:2;22825:9;22821:18;22812:6;22768:72;:::i;:::-;22515:332;;;;;:::o;22853:179::-;22993:31;22989:1;22981:6;22977:14;22970:55;22853:179;:::o;23038:366::-;23180:3;23201:67;23265:2;23260:3;23201:67;:::i;:::-;23194:74;;23277:93;23366:3;23277:93;:::i;:::-;23395:2;23390:3;23386:12;23379:19;;23038:366;;;:::o;23410:419::-;23576:4;23614:2;23603:9;23599:18;23591:26;;23663:9;23657:4;23653:20;23649:1;23638:9;23634:17;23627:47;23691:131;23817:4;23691:131;:::i;:::-;23683:139;;23410:419;;;:::o;23835:85::-;23880:7;23909:5;23898:16;;23835:85;;;:::o;23926:60::-;23954:3;23975:5;23968:12;;23926:60;;;:::o;23992:158::-;24050:9;24083:61;24101:42;24110:32;24136:5;24110:32;:::i;:::-;24101:42;:::i;:::-;24083:61;:::i;:::-;24070:74;;23992:158;;;:::o;24156:147::-;24251:45;24290:5;24251:45;:::i;:::-;24246:3;24239:58;24156:147;;:::o;24309:807::-;24558:4;24596:3;24585:9;24581:19;24573:27;;24610:71;24678:1;24667:9;24663:17;24654:6;24610:71;:::i;:::-;24691:72;24759:2;24748:9;24744:18;24735:6;24691:72;:::i;:::-;24773:80;24849:2;24838:9;24834:18;24825:6;24773:80;:::i;:::-;24863;24939:2;24928:9;24924:18;24915:6;24863:80;:::i;:::-;24953:73;25021:3;25010:9;25006:19;24997:6;24953:73;:::i;:::-;25036;25104:3;25093:9;25089:19;25080:6;25036:73;:::i;:::-;24309:807;;;;;;;;;:::o;25122:143::-;25179:5;25210:6;25204:13;25195:22;;25226:33;25253:5;25226:33;:::i;:::-;25122:143;;;;:::o;25271:663::-;25359:6;25367;25375;25424:2;25412:9;25403:7;25399:23;25395:32;25392:119;;;25430:79;;:::i;:::-;25392:119;25550:1;25575:64;25631:7;25622:6;25611:9;25607:22;25575:64;:::i;:::-;25565:74;;25521:128;25688:2;25714:64;25770:7;25761:6;25750:9;25746:22;25714:64;:::i;:::-;25704:74;;25659:129;25827:2;25853:64;25909:7;25900:6;25889:9;25885:22;25853:64;:::i;:::-;25843:74;;25798:129;25271:663;;;;;:::o;25940:180::-;25988:77;25985:1;25978:88;26085:4;26082:1;26075:15;26109:4;26106:1;26099:15;26126:185;26166:1;26183:20;26201:1;26183:20;:::i;:::-;26178:25;;26217:20;26235:1;26217:20;:::i;:::-;26212:25;;26256:1;26246:35;;26261:18;;:::i;:::-;26246:35;26303:1;26300;26296:9;26291:14;;26126:185;;;;:::o;26317:147::-;26418:11;26455:3;26440:18;;26317:147;;;;:::o;26470:114::-;;:::o;26590:398::-;26749:3;26770:83;26851:1;26846:3;26770:83;:::i;:::-;26763:90;;26862:93;26951:3;26862:93;:::i;:::-;26980:1;26975:3;26971:11;26964:18;;26590:398;;;:::o;26994:379::-;27178:3;27200:147;27343:3;27200:147;:::i;:::-;27193:154;;27364:3;27357:10;;26994:379;;;:::o;27379:197::-;27418:3;27437:19;27454:1;27437:19;:::i;:::-;27432:24;;27470:19;27487:1;27470:19;:::i;:::-;27465:24;;27512:1;27509;27505:9;27498:16;;27535:10;27530:3;27527:19;27524:45;;;27549:18;;:::i;:::-;27524:45;27379:197;;;;:::o;27582:180::-;27630:77;27627:1;27620:88;27727:4;27724:1;27717:15;27751:4;27748:1;27741:15;27768:114;27835:6;27869:5;27863:12;27853:22;;27768:114;;;:::o;27888:184::-;27987:11;28021:6;28016:3;28009:19;28061:4;28056:3;28052:14;28037:29;;27888:184;;;;:::o;28078:132::-;28145:4;28168:3;28160:11;;28198:4;28193:3;28189:14;28181:22;;28078:132;;;:::o;28216:108::-;28293:24;28311:5;28293:24;:::i;:::-;28288:3;28281:37;28216:108;;:::o;28330:179::-;28399:10;28420:46;28462:3;28454:6;28420:46;:::i;:::-;28498:4;28493:3;28489:14;28475:28;;28330:179;;;;:::o;28515:113::-;28585:4;28617;28612:3;28608:14;28600:22;;28515:113;;;:::o;28664:732::-;28783:3;28812:54;28860:5;28812:54;:::i;:::-;28882:86;28961:6;28956:3;28882:86;:::i;:::-;28875:93;;28992:56;29042:5;28992:56;:::i;:::-;29071:7;29102:1;29087:284;29112:6;29109:1;29106:13;29087:284;;;29188:6;29182:13;29215:63;29274:3;29259:13;29215:63;:::i;:::-;29208:70;;29301:60;29354:6;29301:60;:::i;:::-;29291:70;;29147:224;29134:1;29131;29127:9;29122:14;;29087:284;;;29091:14;29387:3;29380:10;;28788:608;;;28664:732;;;;:::o;29402:831::-;29665:4;29703:3;29692:9;29688:19;29680:27;;29717:71;29785:1;29774:9;29770:17;29761:6;29717:71;:::i;:::-;29798:80;29874:2;29863:9;29859:18;29850:6;29798:80;:::i;:::-;29925:9;29919:4;29915:20;29910:2;29899:9;29895:18;29888:48;29953:108;30056:4;30047:6;29953:108;:::i;:::-;29945:116;;30071:72;30139:2;30128:9;30124:18;30115:6;30071:72;:::i;:::-;30153:73;30221:3;30210:9;30206:19;30197:6;30153:73;:::i;:::-;29402:831;;;;;;;;:::o

Swarm Source

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