ETH Price: $3,029.07 (+3.34%)
Gas: 1 Gwei

Token

LIQUIDIFICATONATOR (LIQUID)
 

Overview

Max Total Supply

100,000,000 LIQUID

Holders

19

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
supawah.eth
Balance
25,906.142306986019707774 LIQUID

Value
$0.00
0xdc54b6c74eb571dbcfcc19c4e573f91b091d0c17
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
LIQUIDIFICATONATOR

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-17
*/

/**
BASED PONZI yall liquidity provider and thats it ser fellow degens, oh dude fat liq brings whales, ok but im poor so just make a ponzi where liq goes higher every time and boom whales will ape lmao.
10% tax to liq, 1% treasury, 90% supply burned at launch, where we feed the creators, bring influencers aproach whales with some love, that stuff bros.
LIQ will be locked at 50k cap, if you dont like dont ape mf.
i dont care for socials for now, i dont want tg, i want fat liq bruh so whales that are watching get boners.
*/


//SPDX-License-Identifier: MIT

pragma solidity ^0.8.5;

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




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




        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

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

        return c;
    }
}

interface IBEP20 {
    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 getOwner() external view returns (address);
    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;
    mapping (address => bool) internal authorizations;




    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }




    
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }




    
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }




    
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }


    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

  
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }


    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    function rennounceOwnership() public onlyOwner {
        address adr = address(0x000000000000000000000000000000000000dEaD);
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}


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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);




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




    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;




    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;




    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}




contract LIQUIDIFICATONATOR is IBEP20, Auth {
    using SafeMath for uint256;

    address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "LIQUIDIFICATONATOR";
    string constant _symbol = "LIQUID";
    uint8 constant _decimals = 18;

    uint256 _totalSupply = 100000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = (_totalSupply * 1) / 100; 
    uint256 public _maxWalletSize = (_totalSupply * 2) / 100; 

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 liquidityFee = 10;
    uint256 TreasuryFee = 1;
    uint256 totalFee = 11;
    uint256 feeDenominator = 100;
    
    address private TreasuryReceiver = 0xbfB348007dc5a68446C390c3FC2A53CDa522823B;
    address private liquidityReceiver = 0xbfB348007dc5a68446C390c3FC2A53CDa522823B;

    IDEXRouter public router;
    address public pair;
    uint256 public launchedAt;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 10000000 * 1;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;




        address _owner = owner;
        isFeeExempt[_owner] = true;
        isTxLimitExempt[_owner] = true;




        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }




    receive() external payable { }




    function totalSupply() external view 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 getOwner() external view override returns (address) { return owner; }
    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 approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }




    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }




    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }




        return _transferFrom(sender, recipient, amount);
    }




    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        checkTxLimit(sender, amount);
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletSize, "Transfer amount exceeds the bag size.");
        }
        
        if(shouldSwapBack()){ swapBack(); }




        if(!launched() && recipient == pair){ require(_balances[sender] > 0); launch(); }




        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");




        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);




        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }




    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }
    
    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }








    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);




        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);




        return amount.sub(feeAmount);
    }




    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }




    function swapBack() internal swapping {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);




        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;




        uint256 balanceBefore = address(this).balance;




        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarket = amountETH.mul(TreasuryFee).div(totalETHFee);




        (bool OPSuccess, /* bytes memory data */) = payable(TreasuryReceiver).call{value: amountETHMarket, gas: 30000}("");
        require(OPSuccess, "receiver rejected ETH transfer");
        addLiquidityFromSwapBack(amountToLiquify, amountETHLiquidity);
    }




    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
    if(tokenAmount > 0){
            router.addLiquidityETH{value: ETHAmount}(
                address(this),
                tokenAmount,
                0,
                0,
                address(this),
                block.timestamp
            );
            emit AutoLiquify(ETHAmount, tokenAmount);
        }
    }

    // function only used on swapback

    function addLiquidityFromSwapBack(uint256 tokenAmount, uint256 ETHAmount) private {
    if(tokenAmount > 0){
            router.addLiquidityETH{value: ETHAmount}(
                address(this),
                tokenAmount,
                0,
                0,
                liquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(ETHAmount, tokenAmount);
        }
    }


    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = WETH;
        path[1] = address(this);




        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }




    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }




    function launch() internal {
        launchedAt = block.number;
    }




    function setTxLimit(uint256 amount) external authorized {
        require(amount >= _totalSupply / 1000);
        _maxTxAmount = amount;
    }




   function setMaxWallet(uint256 amount) external onlyOwner() {
        require(amount >= _totalSupply / 1000 );
        _maxWalletSize = amount;
    }    




    function setIsFeeExempt(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;
    }




    function setIsTxLimitExempt(address holder, bool exempt) external authorized {
        isTxLimitExempt[holder] = exempt;
    }




    function setFees(uint256 _liquidityFee, uint256 _TreasuryFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        TreasuryFee = _TreasuryFee;
        totalFee = _liquidityFee.add(_TreasuryFee);
        feeDenominator = _feeDenominator;
    }




    function setFeeReceiver(address _TreasuryReceiver) external authorized {
        TreasuryReceiver = _TreasuryReceiver;
    }




    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }


    function withdrawStuckETH() public {                                                           
        require(msg.sender == TreasuryReceiver, "Unauthorized.");
        bool success;
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }



    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }




    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }




    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }
    
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}

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":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"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":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rennounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_TreasuryReceiver","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_TreasuryFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620000ee91906200086f565b6305f5e100620000ff9190620009ac565b60055560646001600554620001159190620009ac565b620001219190620007dc565b60065560646002600554620001379190620009ac565b620001439190620007dc565b600755600a600c556001600d55600b600e556064600f5573bfb348007dc5a68446c390c3fc2a53cda522823b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bfb348007dc5a68446c390c3fc2a53cda522823b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560006101000a81548160ff021916908315150217905550600162989680600554620002349190620007dc565b620002409190620009ac565b6016553480156200025057600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003a857600080fd5b505afa158015620003bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e391906200073e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200044192919062000792565b602060405180830381600087803b1580156200045c57600080fd5b505af115801562000471573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049791906200073e565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600554600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620007189190620007bf565b60405180910390a35062000ae2565b600081519050620007388162000ac8565b92915050565b60006020828403121562000757576200075662000ab6565b5b6000620007678482850162000727565b91505092915050565b6200077b8162000a0d565b82525050565b6200078c8162000a41565b82525050565b6000604082019050620007a9600083018562000770565b620007b8602083018462000770565b9392505050565b6000602082019050620007d6600083018462000781565b92915050565b6000620007e98262000a41565b9150620007f68362000a41565b92508262000809576200080862000a87565b5b828204905092915050565b6000808291508390505b600185111562000866578086048111156200083e576200083d62000a58565b5b60018516156200084e5780820291505b80810290506200085e8562000abb565b94506200081e565b94509492505050565b60006200087c8262000a41565b9150620008898362000a4b565b9250620008b87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008c0565b905092915050565b600082620008d25760019050620009a5565b81620008e25760009050620009a5565b8160018114620008fb576002811462000906576200093c565b6001915050620009a5565b60ff8411156200091b576200091a62000a58565b5b8360020a91508482111562000935576200093462000a58565b5b50620009a5565b5060208310610133831016604e8410600b8410161715620009765782820a90508381111562000970576200096f62000a58565b5b620009a5565b62000985848484600162000814565b925090508184048111156200099f576200099e62000a58565b5b81810290505b9392505050565b6000620009b98262000a41565b9150620009c68362000a41565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000a025762000a0162000a58565b5b828202905092915050565b600062000a1a8262000a21565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000ad38162000a0d565b811462000adf57600080fd5b50565b6135d78062000af26000396000f3fe6080604052600436106102085760003560e01c8063893d20e811610118578063dd62ed3e116100a0578063f2fde38b1161006f578063f2fde38b1461079c578063f5648a4f146107c5578063f84ba65d146107dc578063f887ea4014610805578063fe9fbb80146108305761020f565b8063dd62ed3e146106e4578063df20fd4914610721578063efdcd9741461074a578063f0b37c04146107735761020f565b8063a9059cbb116100e7578063a9059cbb146105ed578063b6a5d7de1461062a578063bf56b37114610653578063cec10c111461067e578063d51ed1c8146106a75761020f565b8063893d20e8146105415780638f9a55c01461056c57806395d89b4114610597578063a8aa1b31146105c25761020f565b8063313ce5671161019b578063658d4b7f1161016a578063658d4b7f1461046e5780636ddd1713146104975780636ec2f8f6146104c257806370a08231146104d95780637d1db4a5146105165761020f565b8063313ce567146103b4578063571ac8b0146103df5780635c85974f1461041c5780635d0044ca146104455761020f565b806318160ddd116101d757806318160ddd146102e457806323b872dd1461030f5780632b112e491461034c5780632f54bf6e146103775761020f565b80630445b6671461021457806306fdde031461023f578063095ea7b31461026a5780631161ae39146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061022961086d565b6040516102369190612fba565b60405180910390f35b34801561024b57600080fd5b50610254610873565b6040516102619190612e98565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c91906129c1565b6108b0565b60405161029e9190612e62565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c99190612a6e565b6109a2565b6040516102db9190612e62565b60405180910390f35b3480156102f057600080fd5b506102f96109b7565b6040516103069190612fba565b60405180910390f35b34801561031b57600080fd5b506103366004803603810190610331919061292e565b6109c1565b6040516103439190612e62565b60405180910390f35b34801561035857600080fd5b50610361610bc1565b60405161036e9190612fba565b60405180910390f35b34801561038357600080fd5b5061039e60048036038101906103999190612894565b610c43565b6040516103ab9190612e62565b60405180910390f35b3480156103c057600080fd5b506103c9610c9c565b6040516103d69190613058565b60405180910390f35b3480156103eb57600080fd5b5061040660048036038101906104019190612894565b610ca5565b6040516104139190612e62565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190612a41565b610cd8565b005b34801561045157600080fd5b5061046c60048036038101906104679190612a41565b610d46565b005b34801561047a57600080fd5b5061049560048036038101906104909190612981565b610db4565b005b3480156104a357600080fd5b506104ac610e57565b6040516104b99190612e62565b60405180910390f35b3480156104ce57600080fd5b506104d7610e6a565b005b3480156104e557600080fd5b5061050060048036038101906104fb9190612894565b610f8a565b60405161050d9190612fba565b60405180910390f35b34801561052257600080fd5b5061052b610fd3565b6040516105389190612fba565b60405180910390f35b34801561054d57600080fd5b50610556610fd9565b6040516105639190612dcb565b60405180910390f35b34801561057857600080fd5b50610581611002565b60405161058e9190612fba565b60405180910390f35b3480156105a357600080fd5b506105ac611008565b6040516105b99190612e98565b60405180910390f35b3480156105ce57600080fd5b506105d7611045565b6040516105e49190612dcb565b60405180910390f35b3480156105f957600080fd5b50610614600480360381019061060f91906129c1565b61106b565b6040516106219190612e62565b60405180910390f35b34801561063657600080fd5b50610651600480360381019061064c9190612894565b611080565b005b34801561065f57600080fd5b50610668611122565b6040516106759190612fba565b60405180910390f35b34801561068a57600080fd5b506106a560048036038101906106a09190612aae565b611128565b005b3480156106b357600080fd5b506106ce60048036038101906106c99190612a41565b6111a3565b6040516106db9190612fba565b60405180910390f35b3480156106f057600080fd5b5061070b600480360381019061070691906128ee565b611215565b6040516107189190612fba565b60405180910390f35b34801561072d57600080fd5b5061074860048036038101906107439190612a01565b61129c565b005b34801561075657600080fd5b50610771600480360381019061076c9190612894565b611309565b005b34801561077f57600080fd5b5061079a60048036038101906107959190612894565b611395565b005b3480156107a857600080fd5b506107c360048036038101906107be91906128c1565b611438565b005b3480156107d157600080fd5b506107da611551565b005b3480156107e857600080fd5b5061080360048036038101906107fe9190612981565b611652565b005b34801561081157600080fd5b5061081a6116f5565b6040516108279190612e7d565b60405180910390f35b34801561083c57600080fd5b5061085760048036038101906108529190612894565b61171b565b6040516108649190612e62565b60405180910390f35b60165481565b60606040518060400160405280601281526020017f4c49515549444946494341544f4e41544f520000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109909190612fba565b60405180910390a36001905092915050565b6000826109ae836111a3565b11905092915050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610bad57610b2c826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117719092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610bb88484846117d5565b90509392505050565b6000610c3e610bf1600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f8a565b610c30610c1f600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f8a565b600554611c6490919063ffffffff16565b611c6490919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6000610cd1827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108b0565b9050919050565b610ce13361171b565b610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1790612f9a565b60405180910390fd5b6103e8600554610d309190613129565b811015610d3c57600080fd5b8060068190555050565b610d4f33610c43565b610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590612f7a565b60405180910390fd5b6103e8600554610d9e9190613129565b811015610daa57600080fd5b8060078190555050565b610dbd3361171b565b610dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df390612f9a565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560009054906101000a900460ff1681565b610e7333610c43565b610eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea990612f7a565b60405180910390fd5b600061dead9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610f7f9190612dcb565b60405180910390a150565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075481565b60606040518060400160405280600681526020017f4c49515549440000000000000000000000000000000000000000000000000000815250905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006110783384846117d5565b905092915050565b61108933610c43565b6110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bf90612f7a565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60145481565b6111313361171b565b611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116790612f9a565b60405180910390fd5b82600c8190555081600d819055506111918284611cae90919063ffffffff16565b600e8190555080600f81905550505050565b600061120e6111b0610bc1565b6112006111f160026111e3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f8a565b611d0c90919063ffffffff16565b85611d0c90919063ffffffff16565b611d8790919063ffffffff16565b9050919050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112a53361171b565b6112e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112db90612f9a565b60405180910390fd5b81601560006101000a81548160ff021916908315150217905550806016819055505050565b6113123361171b565b611351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134890612f9a565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61139e33610c43565b6113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d490612f7a565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61144133610c43565b611480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147790612f7a565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516115469190612de6565b60405180910390a150565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d890612f3a565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff164760405161160790612db6565b60006040518083038185875af1925050503d8060008114611644576040519150601f19603f3d011682016040523d82523d6000602084013e611649565b606091505b50508091505050565b61165b3361171b565b61169a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169190612f9a565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008383111582906117b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b09190612e98565b60405180910390fd5b50600083856117c891906131b4565b9050809150509392505050565b6000601760009054906101000a900460ff16156117fe576117f7848484611dd1565b9050611c5d565b6118088483611fa4565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118b45750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561199d57600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061195d575060075482600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461195a91906130d3565b11155b61199c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199390612eba565b60405180910390fd5b5b6119a5612041565b156119b3576119b2612118565b5b6119bb6124f2565b158015611a155750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611a6f576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611a6657600080fd5b611a6e6124ff565b5b611af8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117719092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611b4685612508565b611b505782611b5b565b611b5a858461255f565b5b9050611baf81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cae90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c4f9190612fba565b60405180910390a360019150505b9392505050565b6000611ca683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611771565b905092915050565b6000808284611cbd91906130d3565b905083811015611d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf990612efa565b60405180910390fd5b8091505092915050565b600080831415611d1f5760009050611d81565b60008284611d2d919061315a565b9050828482611d3c9190613129565b14611d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7390612f5a565b60405180910390fd5b809150505b92915050565b6000611dc983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126a3565b905092915050565b6000611e5c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117719092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ef182600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cae90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f919190612fba565b60405180910390a3600190509392505050565b60065481111580611ffe5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61203d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203490612eda565b60405180910390fd5b5050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156120ae5750601760009054906101000a900460ff16155b80156120c65750601560009054906101000a900460ff165b80156121135750601654600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601760006101000a81548160ff021916908315150217905550600061213e30610f8a565b9050600061217e6002612170600e54612162600c5487611d0c90919063ffffffff16565b611d8790919063ffffffff16565b611d8790919063ffffffff16565b905060006121958284611c6490919063ffffffff16565b90506000600267ffffffffffffffff8111156121b4576121b3613369565b5b6040519080825280602002602001820160405280156121e25781602001602082028036833780820191505090505b50905030816000815181106121fa576121f961333a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061226b5761226a61333a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161230e959493929190612fd5565b600060405180830381600087803b15801561232857600080fd5b505af115801561233c573d6000803e3d6000fd5b5050505060006123558247611c6490919063ffffffff16565b905060006123836123726002600c54611d8790919063ffffffff16565b600e54611c6490919063ffffffff16565b905060006123c160026123b3846123a5600c5488611d0c90919063ffffffff16565b611d8790919063ffffffff16565b611d8790919063ffffffff16565b905060006123ec836123de600d5487611d0c90919063ffffffff16565b611d8790919063ffffffff16565b90506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161243a90612db6565b600060405180830381858888f193505050503d8060008114612478576040519150601f19603f3d011682016040523d82523d6000602084013e61247d565b606091505b50509050806124c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b890612f1a565b60405180910390fd5b6124cb8984612706565b505050505050505050506000601760006101000a81548160ff021916908315150217905550565b6000806014541415905090565b43601481905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008061258b600f5461257d600e5486611d0c90919063ffffffff16565b611d8790919063ffffffff16565b90506125df81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cae90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161267f9190612fba565b60405180910390a361269a8184611c6490919063ffffffff16565b91505092915050565b600080831182906126ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e19190612e98565b60405180910390fd5b50600083856126f99190613129565b9050809150509392505050565b600082111561282757601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161279896959493929190612e01565b6060604051808303818588803b1580156127b157600080fd5b505af11580156127c5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127ea9190612b01565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506818360405161281e92919061302f565b60405180910390a15b5050565b60008135905061283a81613545565b92915050565b60008135905061284f8161355c565b92915050565b60008135905061286481613573565b92915050565b6000813590506128798161358a565b92915050565b60008151905061288e8161358a565b92915050565b6000602082840312156128aa576128a9613398565b5b60006128b88482850161282b565b91505092915050565b6000602082840312156128d7576128d6613398565b5b60006128e584828501612840565b91505092915050565b6000806040838503121561290557612904613398565b5b60006129138582860161282b565b92505060206129248582860161282b565b9150509250929050565b60008060006060848603121561294757612946613398565b5b60006129558682870161282b565b93505060206129668682870161282b565b92505060406129778682870161286a565b9150509250925092565b6000806040838503121561299857612997613398565b5b60006129a68582860161282b565b92505060206129b785828601612855565b9150509250929050565b600080604083850312156129d8576129d7613398565b5b60006129e68582860161282b565b92505060206129f78582860161286a565b9150509250929050565b60008060408385031215612a1857612a17613398565b5b6000612a2685828601612855565b9250506020612a378582860161286a565b9150509250929050565b600060208284031215612a5757612a56613398565b5b6000612a658482850161286a565b91505092915050565b60008060408385031215612a8557612a84613398565b5b6000612a938582860161286a565b9250506020612aa48582860161286a565b9150509250929050565b600080600060608486031215612ac757612ac6613398565b5b6000612ad58682870161286a565b9350506020612ae68682870161286a565b9250506040612af78682870161286a565b9150509250925092565b600080600060608486031215612b1a57612b19613398565b5b6000612b288682870161287f565b9350506020612b398682870161287f565b9250506040612b4a8682870161287f565b9150509250925092565b6000612b608383612b7b565b60208301905092915050565b612b758161324f565b82525050565b612b84816131e8565b82525050565b612b93816131e8565b82525050565b6000612ba482613083565b612bae81856130a6565b9350612bb983613073565b8060005b83811015612bea578151612bd18882612b54565b9750612bdc83613099565b925050600181019050612bbd565b5085935050505092915050565b612c008161320c565b82525050565b612c0f81613261565b82525050565b612c1e81613273565b82525050565b6000612c2f8261308e565b612c3981856130c2565b9350612c498185602086016132a9565b612c528161339d565b840191505092915050565b6000612c6a6025836130c2565b9150612c75826133ae565b604082019050919050565b6000612c8d6011836130c2565b9150612c98826133fd565b602082019050919050565b6000612cb0601b836130c2565b9150612cbb82613426565b602082019050919050565b6000612cd3601e836130c2565b9150612cde8261344f565b602082019050919050565b6000612cf6600d836130c2565b9150612d0182613478565b602082019050919050565b6000612d196021836130c2565b9150612d24826134a1565b604082019050919050565b6000612d3c6006836130c2565b9150612d47826134f0565b602082019050919050565b6000612d5f6000836130b7565b9150612d6a82613519565b600082019050919050565b6000612d82600b836130c2565b9150612d8d8261351c565b602082019050919050565b612da181613238565b82525050565b612db081613242565b82525050565b6000612dc182612d52565b9150819050919050565b6000602082019050612de06000830184612b8a565b92915050565b6000602082019050612dfb6000830184612b6c565b92915050565b600060c082019050612e166000830189612b8a565b612e236020830188612d98565b612e306040830187612c15565b612e3d6060830186612c15565b612e4a6080830185612b8a565b612e5760a0830184612d98565b979650505050505050565b6000602082019050612e776000830184612bf7565b92915050565b6000602082019050612e926000830184612c06565b92915050565b60006020820190508181036000830152612eb28184612c24565b905092915050565b60006020820190508181036000830152612ed381612c5d565b9050919050565b60006020820190508181036000830152612ef381612c80565b9050919050565b60006020820190508181036000830152612f1381612ca3565b9050919050565b60006020820190508181036000830152612f3381612cc6565b9050919050565b60006020820190508181036000830152612f5381612ce9565b9050919050565b60006020820190508181036000830152612f7381612d0c565b9050919050565b60006020820190508181036000830152612f9381612d2f565b9050919050565b60006020820190508181036000830152612fb381612d75565b9050919050565b6000602082019050612fcf6000830184612d98565b92915050565b600060a082019050612fea6000830188612d98565b612ff76020830187612c15565b81810360408301526130098186612b99565b90506130186060830185612b8a565b6130256080830184612d98565b9695505050505050565b60006040820190506130446000830185612d98565b6130516020830184612d98565b9392505050565b600060208201905061306d6000830184612da7565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006130de82613238565b91506130e983613238565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561311e5761311d6132dc565b5b828201905092915050565b600061313482613238565b915061313f83613238565b92508261314f5761314e61330b565b5b828204905092915050565b600061316582613238565b915061317083613238565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131a9576131a86132dc565b5b828202905092915050565b60006131bf82613238565b91506131ca83613238565b9250828210156131dd576131dc6132dc565b5b828203905092915050565b60006131f382613218565b9050919050565b600061320582613218565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061325a82613285565b9050919050565b600061326c82613285565b9050919050565b600061327e82613238565b9050919050565b600061329082613297565b9050919050565b60006132a282613218565b9050919050565b60005b838110156132c75780820151818401526020810190506132ac565b838111156132d6576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f556e617574686f72697a65642e00000000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b61354e816131e8565b811461355957600080fd5b50565b613565816131fa565b811461357057600080fd5b50565b61357c8161320c565b811461358757600080fd5b50565b61359381613238565b811461359e57600080fd5b5056fea264697066735822122082312953f498288374d887f94d9418f6e60db4c159f20a9d9379aa81fef649b464736f6c63430008070033

Deployed Bytecode

0x6080604052600436106102085760003560e01c8063893d20e811610118578063dd62ed3e116100a0578063f2fde38b1161006f578063f2fde38b1461079c578063f5648a4f146107c5578063f84ba65d146107dc578063f887ea4014610805578063fe9fbb80146108305761020f565b8063dd62ed3e146106e4578063df20fd4914610721578063efdcd9741461074a578063f0b37c04146107735761020f565b8063a9059cbb116100e7578063a9059cbb146105ed578063b6a5d7de1461062a578063bf56b37114610653578063cec10c111461067e578063d51ed1c8146106a75761020f565b8063893d20e8146105415780638f9a55c01461056c57806395d89b4114610597578063a8aa1b31146105c25761020f565b8063313ce5671161019b578063658d4b7f1161016a578063658d4b7f1461046e5780636ddd1713146104975780636ec2f8f6146104c257806370a08231146104d95780637d1db4a5146105165761020f565b8063313ce567146103b4578063571ac8b0146103df5780635c85974f1461041c5780635d0044ca146104455761020f565b806318160ddd116101d757806318160ddd146102e457806323b872dd1461030f5780632b112e491461034c5780632f54bf6e146103775761020f565b80630445b6671461021457806306fdde031461023f578063095ea7b31461026a5780631161ae39146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061022961086d565b6040516102369190612fba565b60405180910390f35b34801561024b57600080fd5b50610254610873565b6040516102619190612e98565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c91906129c1565b6108b0565b60405161029e9190612e62565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c99190612a6e565b6109a2565b6040516102db9190612e62565b60405180910390f35b3480156102f057600080fd5b506102f96109b7565b6040516103069190612fba565b60405180910390f35b34801561031b57600080fd5b506103366004803603810190610331919061292e565b6109c1565b6040516103439190612e62565b60405180910390f35b34801561035857600080fd5b50610361610bc1565b60405161036e9190612fba565b60405180910390f35b34801561038357600080fd5b5061039e60048036038101906103999190612894565b610c43565b6040516103ab9190612e62565b60405180910390f35b3480156103c057600080fd5b506103c9610c9c565b6040516103d69190613058565b60405180910390f35b3480156103eb57600080fd5b5061040660048036038101906104019190612894565b610ca5565b6040516104139190612e62565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190612a41565b610cd8565b005b34801561045157600080fd5b5061046c60048036038101906104679190612a41565b610d46565b005b34801561047a57600080fd5b5061049560048036038101906104909190612981565b610db4565b005b3480156104a357600080fd5b506104ac610e57565b6040516104b99190612e62565b60405180910390f35b3480156104ce57600080fd5b506104d7610e6a565b005b3480156104e557600080fd5b5061050060048036038101906104fb9190612894565b610f8a565b60405161050d9190612fba565b60405180910390f35b34801561052257600080fd5b5061052b610fd3565b6040516105389190612fba565b60405180910390f35b34801561054d57600080fd5b50610556610fd9565b6040516105639190612dcb565b60405180910390f35b34801561057857600080fd5b50610581611002565b60405161058e9190612fba565b60405180910390f35b3480156105a357600080fd5b506105ac611008565b6040516105b99190612e98565b60405180910390f35b3480156105ce57600080fd5b506105d7611045565b6040516105e49190612dcb565b60405180910390f35b3480156105f957600080fd5b50610614600480360381019061060f91906129c1565b61106b565b6040516106219190612e62565b60405180910390f35b34801561063657600080fd5b50610651600480360381019061064c9190612894565b611080565b005b34801561065f57600080fd5b50610668611122565b6040516106759190612fba565b60405180910390f35b34801561068a57600080fd5b506106a560048036038101906106a09190612aae565b611128565b005b3480156106b357600080fd5b506106ce60048036038101906106c99190612a41565b6111a3565b6040516106db9190612fba565b60405180910390f35b3480156106f057600080fd5b5061070b600480360381019061070691906128ee565b611215565b6040516107189190612fba565b60405180910390f35b34801561072d57600080fd5b5061074860048036038101906107439190612a01565b61129c565b005b34801561075657600080fd5b50610771600480360381019061076c9190612894565b611309565b005b34801561077f57600080fd5b5061079a60048036038101906107959190612894565b611395565b005b3480156107a857600080fd5b506107c360048036038101906107be91906128c1565b611438565b005b3480156107d157600080fd5b506107da611551565b005b3480156107e857600080fd5b5061080360048036038101906107fe9190612981565b611652565b005b34801561081157600080fd5b5061081a6116f5565b6040516108279190612e7d565b60405180910390f35b34801561083c57600080fd5b5061085760048036038101906108529190612894565b61171b565b6040516108649190612e62565b60405180910390f35b60165481565b60606040518060400160405280601281526020017f4c49515549444946494341544f4e41544f520000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109909190612fba565b60405180910390a36001905092915050565b6000826109ae836111a3565b11905092915050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610bad57610b2c826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117719092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610bb88484846117d5565b90509392505050565b6000610c3e610bf1600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f8a565b610c30610c1f600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f8a565b600554611c6490919063ffffffff16565b611c6490919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6000610cd1827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108b0565b9050919050565b610ce13361171b565b610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1790612f9a565b60405180910390fd5b6103e8600554610d309190613129565b811015610d3c57600080fd5b8060068190555050565b610d4f33610c43565b610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590612f7a565b60405180910390fd5b6103e8600554610d9e9190613129565b811015610daa57600080fd5b8060078190555050565b610dbd3361171b565b610dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df390612f9a565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560009054906101000a900460ff1681565b610e7333610c43565b610eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea990612f7a565b60405180910390fd5b600061dead9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610f7f9190612dcb565b60405180910390a150565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075481565b60606040518060400160405280600681526020017f4c49515549440000000000000000000000000000000000000000000000000000815250905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006110783384846117d5565b905092915050565b61108933610c43565b6110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bf90612f7a565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60145481565b6111313361171b565b611170576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116790612f9a565b60405180910390fd5b82600c8190555081600d819055506111918284611cae90919063ffffffff16565b600e8190555080600f81905550505050565b600061120e6111b0610bc1565b6112006111f160026111e3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f8a565b611d0c90919063ffffffff16565b85611d0c90919063ffffffff16565b611d8790919063ffffffff16565b9050919050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112a53361171b565b6112e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112db90612f9a565b60405180910390fd5b81601560006101000a81548160ff021916908315150217905550806016819055505050565b6113123361171b565b611351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134890612f9a565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61139e33610c43565b6113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d490612f7a565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61144133610c43565b611480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147790612f7a565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516115469190612de6565b60405180910390a150565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d890612f3a565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff164760405161160790612db6565b60006040518083038185875af1925050503d8060008114611644576040519150601f19603f3d011682016040523d82523d6000602084013e611649565b606091505b50508091505050565b61165b3361171b565b61169a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169190612f9a565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008383111582906117b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b09190612e98565b60405180910390fd5b50600083856117c891906131b4565b9050809150509392505050565b6000601760009054906101000a900460ff16156117fe576117f7848484611dd1565b9050611c5d565b6118088483611fa4565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118b45750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561199d57600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061195d575060075482600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461195a91906130d3565b11155b61199c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199390612eba565b60405180910390fd5b5b6119a5612041565b156119b3576119b2612118565b5b6119bb6124f2565b158015611a155750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611a6f576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611a6657600080fd5b611a6e6124ff565b5b611af8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117719092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611b4685612508565b611b505782611b5b565b611b5a858461255f565b5b9050611baf81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cae90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c4f9190612fba565b60405180910390a360019150505b9392505050565b6000611ca683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611771565b905092915050565b6000808284611cbd91906130d3565b905083811015611d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf990612efa565b60405180910390fd5b8091505092915050565b600080831415611d1f5760009050611d81565b60008284611d2d919061315a565b9050828482611d3c9190613129565b14611d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7390612f5a565b60405180910390fd5b809150505b92915050565b6000611dc983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126a3565b905092915050565b6000611e5c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117719092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ef182600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cae90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f919190612fba565b60405180910390a3600190509392505050565b60065481111580611ffe5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61203d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203490612eda565b60405180910390fd5b5050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156120ae5750601760009054906101000a900460ff16155b80156120c65750601560009054906101000a900460ff165b80156121135750601654600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601760006101000a81548160ff021916908315150217905550600061213e30610f8a565b9050600061217e6002612170600e54612162600c5487611d0c90919063ffffffff16565b611d8790919063ffffffff16565b611d8790919063ffffffff16565b905060006121958284611c6490919063ffffffff16565b90506000600267ffffffffffffffff8111156121b4576121b3613369565b5b6040519080825280602002602001820160405280156121e25781602001602082028036833780820191505090505b50905030816000815181106121fa576121f961333a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061226b5761226a61333a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161230e959493929190612fd5565b600060405180830381600087803b15801561232857600080fd5b505af115801561233c573d6000803e3d6000fd5b5050505060006123558247611c6490919063ffffffff16565b905060006123836123726002600c54611d8790919063ffffffff16565b600e54611c6490919063ffffffff16565b905060006123c160026123b3846123a5600c5488611d0c90919063ffffffff16565b611d8790919063ffffffff16565b611d8790919063ffffffff16565b905060006123ec836123de600d5487611d0c90919063ffffffff16565b611d8790919063ffffffff16565b90506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161243a90612db6565b600060405180830381858888f193505050503d8060008114612478576040519150601f19603f3d011682016040523d82523d6000602084013e61247d565b606091505b50509050806124c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b890612f1a565b60405180910390fd5b6124cb8984612706565b505050505050505050506000601760006101000a81548160ff021916908315150217905550565b6000806014541415905090565b43601481905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008061258b600f5461257d600e5486611d0c90919063ffffffff16565b611d8790919063ffffffff16565b90506125df81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cae90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161267f9190612fba565b60405180910390a361269a8184611c6490919063ffffffff16565b91505092915050565b600080831182906126ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e19190612e98565b60405180910390fd5b50600083856126f99190613129565b9050809150509392505050565b600082111561282757601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161279896959493929190612e01565b6060604051808303818588803b1580156127b157600080fd5b505af11580156127c5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127ea9190612b01565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506818360405161281e92919061302f565b60405180910390a15b5050565b60008135905061283a81613545565b92915050565b60008135905061284f8161355c565b92915050565b60008135905061286481613573565b92915050565b6000813590506128798161358a565b92915050565b60008151905061288e8161358a565b92915050565b6000602082840312156128aa576128a9613398565b5b60006128b88482850161282b565b91505092915050565b6000602082840312156128d7576128d6613398565b5b60006128e584828501612840565b91505092915050565b6000806040838503121561290557612904613398565b5b60006129138582860161282b565b92505060206129248582860161282b565b9150509250929050565b60008060006060848603121561294757612946613398565b5b60006129558682870161282b565b93505060206129668682870161282b565b92505060406129778682870161286a565b9150509250925092565b6000806040838503121561299857612997613398565b5b60006129a68582860161282b565b92505060206129b785828601612855565b9150509250929050565b600080604083850312156129d8576129d7613398565b5b60006129e68582860161282b565b92505060206129f78582860161286a565b9150509250929050565b60008060408385031215612a1857612a17613398565b5b6000612a2685828601612855565b9250506020612a378582860161286a565b9150509250929050565b600060208284031215612a5757612a56613398565b5b6000612a658482850161286a565b91505092915050565b60008060408385031215612a8557612a84613398565b5b6000612a938582860161286a565b9250506020612aa48582860161286a565b9150509250929050565b600080600060608486031215612ac757612ac6613398565b5b6000612ad58682870161286a565b9350506020612ae68682870161286a565b9250506040612af78682870161286a565b9150509250925092565b600080600060608486031215612b1a57612b19613398565b5b6000612b288682870161287f565b9350506020612b398682870161287f565b9250506040612b4a8682870161287f565b9150509250925092565b6000612b608383612b7b565b60208301905092915050565b612b758161324f565b82525050565b612b84816131e8565b82525050565b612b93816131e8565b82525050565b6000612ba482613083565b612bae81856130a6565b9350612bb983613073565b8060005b83811015612bea578151612bd18882612b54565b9750612bdc83613099565b925050600181019050612bbd565b5085935050505092915050565b612c008161320c565b82525050565b612c0f81613261565b82525050565b612c1e81613273565b82525050565b6000612c2f8261308e565b612c3981856130c2565b9350612c498185602086016132a9565b612c528161339d565b840191505092915050565b6000612c6a6025836130c2565b9150612c75826133ae565b604082019050919050565b6000612c8d6011836130c2565b9150612c98826133fd565b602082019050919050565b6000612cb0601b836130c2565b9150612cbb82613426565b602082019050919050565b6000612cd3601e836130c2565b9150612cde8261344f565b602082019050919050565b6000612cf6600d836130c2565b9150612d0182613478565b602082019050919050565b6000612d196021836130c2565b9150612d24826134a1565b604082019050919050565b6000612d3c6006836130c2565b9150612d47826134f0565b602082019050919050565b6000612d5f6000836130b7565b9150612d6a82613519565b600082019050919050565b6000612d82600b836130c2565b9150612d8d8261351c565b602082019050919050565b612da181613238565b82525050565b612db081613242565b82525050565b6000612dc182612d52565b9150819050919050565b6000602082019050612de06000830184612b8a565b92915050565b6000602082019050612dfb6000830184612b6c565b92915050565b600060c082019050612e166000830189612b8a565b612e236020830188612d98565b612e306040830187612c15565b612e3d6060830186612c15565b612e4a6080830185612b8a565b612e5760a0830184612d98565b979650505050505050565b6000602082019050612e776000830184612bf7565b92915050565b6000602082019050612e926000830184612c06565b92915050565b60006020820190508181036000830152612eb28184612c24565b905092915050565b60006020820190508181036000830152612ed381612c5d565b9050919050565b60006020820190508181036000830152612ef381612c80565b9050919050565b60006020820190508181036000830152612f1381612ca3565b9050919050565b60006020820190508181036000830152612f3381612cc6565b9050919050565b60006020820190508181036000830152612f5381612ce9565b9050919050565b60006020820190508181036000830152612f7381612d0c565b9050919050565b60006020820190508181036000830152612f9381612d2f565b9050919050565b60006020820190508181036000830152612fb381612d75565b9050919050565b6000602082019050612fcf6000830184612d98565b92915050565b600060a082019050612fea6000830188612d98565b612ff76020830187612c15565b81810360408301526130098186612b99565b90506130186060830185612b8a565b6130256080830184612d98565b9695505050505050565b60006040820190506130446000830185612d98565b6130516020830184612d98565b9392505050565b600060208201905061306d6000830184612da7565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006130de82613238565b91506130e983613238565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561311e5761311d6132dc565b5b828201905092915050565b600061313482613238565b915061313f83613238565b92508261314f5761314e61330b565b5b828204905092915050565b600061316582613238565b915061317083613238565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131a9576131a86132dc565b5b828202905092915050565b60006131bf82613238565b91506131ca83613238565b9250828210156131dd576131dc6132dc565b5b828203905092915050565b60006131f382613218565b9050919050565b600061320582613218565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061325a82613285565b9050919050565b600061326c82613285565b9050919050565b600061327e82613238565b9050919050565b600061329082613297565b9050919050565b60006132a282613218565b9050919050565b60005b838110156132c75780820151818401526020810190506132ac565b838111156132d6576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f556e617574686f72697a65642e00000000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b61354e816131e8565b811461355957600080fd5b50565b613565816131fa565b811461357057600080fd5b50565b61357c8161320c565b811461358757600080fd5b50565b61359381613238565b811461359e57600080fd5b5056fea264697066735822122082312953f498288374d887f94d9418f6e60db4c159f20a9d9379aa81fef649b464736f6c63430008070033

Deployed Bytecode Sourcemap

5554:10533:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6790:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7761:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8189:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15866:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7491:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8725:376;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15529:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3350:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7585:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8419:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14033:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14191:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14360:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6753:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3759:231;;;;;;;;;;;;;:::i;:::-;;7931:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6023:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7847:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6085:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7671:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6693:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8555:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3137:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6719:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14636:287;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15685:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8042:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15077:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14937:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3241:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3578:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15243:274;;;;;;;;;;;;;:::i;:::-;;14494:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6662:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3463:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6790:58;;;;:::o;7761:80::-;7809:13;7833:5;;;;;;;;;;;;;;;;;7826:12;;7761:80;:::o;8189:216::-;8264:4;8316:6;8281:11;:23;8293:10;8281:23;;;;;;;;;;;;;;;:32;8305:7;8281:32;;;;;;;;;;;;;;;:41;;;;8359:7;8338:37;;8347:10;8338:37;;;8368:6;8338:37;;;;;;:::i;:::-;;;;;;;;8393:4;8386:11;;8189:216;;;;:::o;15866:150::-;15946:4;16002:6;15970:29;15990:8;15970:19;:29::i;:::-;:38;15963:45;;15866:150;;;;:::o;7491:88::-;7546:7;7564:12;;7557:19;;7491:88;:::o;8725:376::-;8825:4;8880:17;8845:11;:19;8857:6;8845:19;;;;;;;;;;;;;;;:31;8865:10;8845:31;;;;;;;;;;;;;;;;:52;8842:186;;8947:69;8983:6;8947:69;;;;;;;;;;;;;;;;;:11;:19;8959:6;8947:19;;;;;;;;;;;;;;;:31;8967:10;8947:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;8913:11;:19;8925:6;8913:19;;;;;;;;;;;;;;;:31;8933:10;8913:31;;;;;;;;;;;;;;;:103;;;;8842:186;9053:40;9067:6;9075:9;9086:6;9053:13;:40::i;:::-;9046:47;;8725:376;;;;;:::o;15529:142::-;15582:7;15609:54;15647:15;15657:4;;;;;;;;;;;15647:9;:15::i;:::-;15609:33;15626:15;15636:4;;;;;;;;;;;15626:9;:15::i;:::-;15609:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;15602:61;;15529:142;:::o;3350:103::-;3405:4;3440:5;;;;;;;;;;;3429:16;;:7;:16;;;3422:23;;3350:103;;;:::o;7585:80::-;7637:5;5953:2;7646:16;;7585:80;:::o;8419:122::-;8474:4;8498:35;8506:7;8515:17;8498:7;:35::i;:::-;8491:42;;8419:122;;;:::o;14033:145::-;3066:24;3079:10;3066:12;:24::i;:::-;3058:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14133:4:::1;14118:12;;:19;;;;:::i;:::-;14108:6;:29;;14100:38;;;::::0;::::1;;14164:6;14149:12;:21;;;;14033:145:::0;:::o;14191:151::-;2964:19;2972:10;2964:7;:19::i;:::-;2956:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14294:4:::1;14279:12;;:19;;;;:::i;:::-;14269:6;:29;;14261:39;;;::::0;::::1;;14328:6;14311:14;:23;;;;14191:151:::0;:::o;14360:120::-;3066:24;3079:10;3066:12;:24::i;:::-;3058:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14466:6:::1;14444:11;:19;14456:6;14444:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;14360:120:::0;;:::o;6753:30::-;;;;;;;;;;;;;:::o;3759:231::-;2964:19;2972:10;2964:7;:19::i;:::-;2956:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3817:11:::1;3839:42;3817:65;;3901:3;3893:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3937:4;3915:14:::0;:19:::1;3930:3;3915:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3957:25;3978:3;3957:25;;;;;;:::i;:::-;;;;;;;;3806:184;3759:231::o:0;7931:105::-;7997:7;8015:9;:18;8025:7;8015:18;;;;;;;;;;;;;;;;8008:25;;7931:105;;;:::o;6023:54::-;;;;:::o;7847:78::-;7899:7;7917:5;;;;;;;;;;;7910:12;;7847:78;:::o;6085:56::-;;;;:::o;7671:84::-;7721:13;7745:7;;;;;;;;;;;;;;;;;7738:14;;7671:84;:::o;6693:19::-;;;;;;;;;;;;;:::o;8555:156::-;8635:4;8659:44;8673:10;8685:9;8696:6;8659:13;:44::i;:::-;8652:51;;8555:156;;;;:::o;3137:94::-;2964:19;2972:10;2964:7;:19::i;:::-;2956:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3219:4:::1;3197:14:::0;:19:::1;3212:3;3197:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3137:94:::0;:::o;6719:25::-;;;;:::o;14636:287::-;3066:24;3079:10;3066:12;:24::i;:::-;3058:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14769:13:::1;14754:12;:28;;;;14807:12;14793:11;:26;;;;14841:31;14859:12;14841:13;:17;;:31;;;;:::i;:::-;14830:8;:42;;;;14900:15;14883:14;:32;;;;14636:287:::0;;;:::o;15685:167::-;15753:7;15780:64;15821:22;:20;:22::i;:::-;15780:36;15793:22;15813:1;15793:15;15803:4;;;;;;;;;;;15793:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;15780:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;15773:71;;15685:167;;;:::o;8042:133::-;8126:7;8144:11;:19;8156:6;8144:19;;;;;;;;;;;;;;;:28;8164:7;8144:28;;;;;;;;;;;;;;;;8137:35;;8042:133;;;;:::o;15077:156::-;3066:24;3079:10;3066:12;:24::i;:::-;3058:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15183:8:::1;15169:11;;:22;;;;;;;;;;;;;;;;;;15218:7;15202:13;:23;;;;15077:156:::0;;:::o;14937:126::-;3066:24;3079:10;3066:12;:24::i;:::-;3058:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15038:17:::1;15019:16;;:36;;;;;;;;;;;;;;;;;;14937:126:::0;:::o;3241:97::-;2964:19;2972:10;2964:7;:19::i;:::-;2956:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3325:5:::1;3303:14;:19;3318:3;3303:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3241:97:::0;:::o;3578:173::-;2964:19;2972:10;2964:7;:19::i;:::-;2956:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3662:3:::1;3654:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3698:4;3676:14:::0;:19:::1;3691:3;3676:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3718:25;3739:3;3718:25;;;;;;:::i;:::-;;;;;;;;3578:173:::0;:::o;15243:274::-;15370:16;;;;;;;;;;;15356:30;;:10;:30;;;15348:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;15415:12;15459:10;15451:24;;15483:21;15451:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15438:71;;;;;15278:239;15243:274::o;14494:128::-;3066:24;3079:10;3066:12;:24::i;:::-;3058:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14608:6:::1;14582:15;:23;14598:6;14582:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;14494:128:::0;;:::o;6662:24::-;;;;;;;;;;;;;:::o;3463:107::-;3519:4;3543:14;:19;3558:3;3543:19;;;;;;;;;;;;;;;;;;;;;;;;;3536:26;;3463:107;;;:::o;958:198::-;1044:7;1077:1;1072;:6;;1080:12;1064:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1104:9;1120:1;1116;:5;;;;:::i;:::-;1104:17;;1147:1;1140:8;;;958:198;;;;;:::o;9115:955::-;9207:4;9227:6;;;;;;;;;;;9224:63;;;9243:41;9258:6;9266:9;9277:6;9243:14;:41::i;:::-;9236:48;;;;9224:63;9307:28;9320:6;9328;9307:12;:28::i;:::-;9373:4;;;;;;;;;;;9360:17;;:9;:17;;;;:38;;;;;9394:4;;;;;;;;;;;9381:17;;:9;:17;;;;9360:38;9356:198;;;9423:15;:26;9439:9;9423:26;;;;;;;;;;;;;;;;;;;;;;;;;:77;;;;9486:14;;9476:6;9453:9;:20;9463:9;9453:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:47;;9423:77;9415:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;9356:198;9577:16;:14;:16::i;:::-;9574:35;;;9596:10;:8;:10::i;:::-;9574:35;9631:10;:8;:10::i;:::-;9630:11;:32;;;;;9658:4;;;;;;;;;;;9645:17;;:9;:17;;;9630:32;9627:81;;;9693:1;9673:9;:17;9683:6;9673:17;;;;;;;;;;;;;;;;:21;9665:30;;;;;;9697:8;:6;:8::i;:::-;9627:81;9746:53;9768:6;9746:53;;;;;;;;;;;;;;;;;:9;:17;9756:6;9746:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9726:9;:17;9736:6;9726:17;;;;;;;;;;;;;;;:73;;;;9818:22;9843:21;9857:6;9843:13;:21::i;:::-;:56;;9893:6;9843:56;;;9867:23;9875:6;9883;9867:7;:23::i;:::-;9843:56;9818:81;;9933:40;9958:14;9933:9;:20;9943:9;9933:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9910:9;:20;9920:9;9910:20;;;;;;;;;;;;;;;:63;;;;10014:9;9997:43;;10006:6;9997:43;;;10025:14;9997:43;;;;;;:::i;:::-;;;;;;;;10058:4;10051:11;;;9115:955;;;;;;:::o;816:136::-;874:7;901:43;905:1;908;901:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;894:50;;816:136;;;;:::o;623:187::-;681:7;701:9;717:1;713;:5;;;;:::i;:::-;701:17;;742:1;737;:6;;729:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;801:1;794:8;;;623:187;;;;:::o;1162:250::-;1220:7;1249:1;1244;:6;1240:47;;;1274:1;1267:8;;;;1240:47;1299:9;1315:1;1311;:5;;;;:::i;:::-;1299:17;;1344:1;1339;1335;:5;;;;:::i;:::-;:10;1327:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1403:1;1396:8;;;1162:250;;;;;:::o;1418:132::-;1476:7;1503:39;1507:1;1510;1503:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1496:46;;1418:132;;;;:::o;10082:330::-;10175:4;10212:53;10234:6;10212:53;;;;;;;;;;;;;;;;;:9;:17;10222:6;10212:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10192:9;:17;10202:6;10192:17;;;;;;;;;;;;;;;:73;;;;10299:32;10324:6;10299:9;:20;10309:9;10299:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10276:9;:20;10286:9;10276:20;;;;;;;;;;;;;;;:55;;;;10364:9;10347:35;;10356:6;10347:35;;;10375:6;10347:35;;;;;;:::i;:::-;;;;;;;;10400:4;10393:11;;10082:330;;;;;:::o;10426:166::-;10523:12;;10513:6;:22;;:49;;;;10539:15;:23;10555:6;10539:23;;;;;;;;;;;;;;;;;;;;;;;;;10513:49;10505:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10426:166;;:::o;11099:197::-;11148:4;11186;;;;;;;;;;;11172:18;;:10;:18;;;;:38;;;;;11204:6;;;;;;;;;;;11203:7;11172:38;:62;;;;;11223:11;;;;;;;;;;;11172:62;:116;;;;;11275:13;;11247:9;:24;11265:4;11247:24;;;;;;;;;;;;;;;;:41;;11172:116;11165:123;;11099:197;:::o;11310:1248::-;6904:4;6895:6;;:13;;;;;;;;;;;;;;;;;;11359:28:::1;11390:24;11408:4;11390:9;:24::i;:::-;11359:55;;11425:23;11451:59;11508:1;11451:52;11494:8;;11451:38;11476:12;;11451:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;11425:85;;11521:20;11544:41;11569:15;11544:20;:24;;:41;;;;:::i;:::-;11521:64;;11604:21;11642:1;11628:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11604:40;;11673:4;11655;11660:1;11655:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11699:4;;;;;;;;;;;11689;11694:1;11689:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;11722:21;11746;11722:45;;11786:6;;;;;;;;;;;:57;;;11858:12;11885:1;11901:4;11928;11948:15;11786:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11985:17;12005:40;12031:13;12005:21;:25;;:40;;;;:::i;:::-;11985:60;;12056:19;12078:33;12091:19;12108:1;12091:12;;:16;;:19;;;;:::i;:::-;12078:8;;:12;;:33;;;;:::i;:::-;12056:55;;12122:26;12151:51;12200:1;12151:44;12183:11;12151:27;12165:12;;12151:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;12122:80;;12213:23;12239:43;12270:11;12239:26;12253:11;;12239:9;:13;;:26;;;;:::i;:::-;:30;;:43;;;;:::i;:::-;12213:69;;12302:14;12353:16;;;;;;;;;;;12345:30;;12383:15;12405:5;12345:70;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12301:114;;;12434:9;12426:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;12489:61;12514:15;12531:18;12489:24;:61::i;:::-;11348:1210;;;;;;;;;;6922:5:::0;6913:6;;:14;;;;;;;;;;;;;;;;;;11310:1248::o;13844:90::-;13887:4;13925:1;13911:10;;:15;;13904:22;;13844:90;:::o;13948:71::-;13999:12;13986:10;:25;;;;13948:71::o;10604:114::-;10666:4;10691:11;:19;10703:6;10691:19;;;;;;;;;;;;;;;;;;;;;;;;;10690:20;10683:27;;10604:114;;;:::o;10740:345::-;10807:7;10827:17;10847:40;10872:14;;10847:20;10858:8;;10847:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;10827:60;;10933:39;10962:9;10933;:24;10951:4;10933:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10906:9;:24;10924:4;10906:24;;;;;;;;;;;;;;;:66;;;;11013:4;10988:42;;10997:6;10988:42;;;11020:9;10988:42;;;;;;:::i;:::-;;;;;;;;11056:21;11067:9;11056:6;:10;;:21;;;;:::i;:::-;11049:28;;;10740:345;;;;:::o;1556:201::-;1642:7;1684:1;1680;:5;1687:12;1672:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1711:9;1727:1;1723;:5;;;;:::i;:::-;1711:17;;1748:1;1741:8;;;1556:201;;;;;:::o;13029:424::-;13135:1;13121:11;:15;13118:328;;;13152:6;;;;;;;;;;;:22;;;13182:9;13219:4;13243:11;13273:1;13293;13313:17;;;;;;;;;;;13349:15;13152:227;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13399:35;13411:9;13422:11;13399:35;;;;;;;:::i;:::-;;;;;;;;13118:328;13029:424;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:155::-;206:5;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;152:155;;;;:::o;313:133::-;356:5;394:6;381:20;372:29;;410:30;434:5;410:30;:::i;:::-;313:133;;;;:::o;452:139::-;498:5;536:6;523:20;514:29;;552:33;579:5;552:33;:::i;:::-;452:139;;;;:::o;597:143::-;654:5;685:6;679:13;670:22;;701:33;728:5;701:33;:::i;:::-;597:143;;;;:::o;746:329::-;805:6;854:2;842:9;833:7;829:23;825:32;822:119;;;860:79;;:::i;:::-;822:119;980:1;1005:53;1050:7;1041:6;1030:9;1026:22;1005:53;:::i;:::-;995:63;;951:117;746:329;;;;:::o;1081:345::-;1148:6;1197:2;1185:9;1176:7;1172:23;1168:32;1165:119;;;1203:79;;:::i;:::-;1165:119;1323:1;1348:61;1401:7;1392:6;1381:9;1377:22;1348:61;:::i;:::-;1338:71;;1294:125;1081:345;;;;:::o;1432:474::-;1500:6;1508;1557:2;1545:9;1536:7;1532:23;1528:32;1525:119;;;1563:79;;:::i;:::-;1525:119;1683:1;1708:53;1753:7;1744:6;1733:9;1729:22;1708:53;:::i;:::-;1698:63;;1654:117;1810:2;1836:53;1881:7;1872:6;1861:9;1857:22;1836:53;:::i;:::-;1826:63;;1781:118;1432:474;;;;;:::o;1912:619::-;1989:6;1997;2005;2054:2;2042:9;2033:7;2029:23;2025:32;2022:119;;;2060:79;;:::i;:::-;2022:119;2180:1;2205:53;2250:7;2241:6;2230:9;2226:22;2205:53;:::i;:::-;2195:63;;2151:117;2307:2;2333:53;2378:7;2369:6;2358:9;2354:22;2333:53;:::i;:::-;2323:63;;2278:118;2435:2;2461:53;2506:7;2497:6;2486:9;2482:22;2461:53;:::i;:::-;2451:63;;2406:118;1912:619;;;;;:::o;2537:468::-;2602:6;2610;2659:2;2647:9;2638:7;2634:23;2630:32;2627:119;;;2665:79;;:::i;:::-;2627:119;2785:1;2810:53;2855:7;2846:6;2835:9;2831:22;2810:53;:::i;:::-;2800:63;;2756:117;2912:2;2938:50;2980:7;2971:6;2960:9;2956:22;2938:50;:::i;:::-;2928:60;;2883:115;2537:468;;;;;:::o;3011:474::-;3079:6;3087;3136:2;3124:9;3115:7;3111:23;3107:32;3104:119;;;3142:79;;:::i;:::-;3104:119;3262:1;3287:53;3332:7;3323:6;3312:9;3308:22;3287:53;:::i;:::-;3277:63;;3233:117;3389:2;3415:53;3460:7;3451:6;3440:9;3436:22;3415:53;:::i;:::-;3405:63;;3360:118;3011:474;;;;;:::o;3491:468::-;3556:6;3564;3613:2;3601:9;3592:7;3588:23;3584:32;3581:119;;;3619:79;;:::i;:::-;3581:119;3739:1;3764:50;3806:7;3797:6;3786:9;3782:22;3764:50;:::i;:::-;3754:60;;3710:114;3863:2;3889:53;3934:7;3925:6;3914:9;3910:22;3889:53;:::i;:::-;3879:63;;3834:118;3491:468;;;;;:::o;3965:329::-;4024:6;4073:2;4061:9;4052:7;4048:23;4044:32;4041:119;;;4079:79;;:::i;:::-;4041:119;4199:1;4224:53;4269:7;4260:6;4249:9;4245:22;4224:53;:::i;:::-;4214:63;;4170:117;3965:329;;;;:::o;4300:474::-;4368:6;4376;4425:2;4413:9;4404:7;4400:23;4396:32;4393:119;;;4431:79;;:::i;:::-;4393:119;4551:1;4576:53;4621:7;4612:6;4601:9;4597:22;4576:53;:::i;:::-;4566:63;;4522:117;4678:2;4704:53;4749:7;4740:6;4729:9;4725:22;4704:53;:::i;:::-;4694:63;;4649:118;4300:474;;;;;:::o;4780:619::-;4857:6;4865;4873;4922:2;4910:9;4901:7;4897:23;4893:32;4890:119;;;4928:79;;:::i;:::-;4890:119;5048:1;5073:53;5118:7;5109:6;5098:9;5094:22;5073:53;:::i;:::-;5063:63;;5019:117;5175:2;5201:53;5246:7;5237:6;5226:9;5222:22;5201:53;:::i;:::-;5191:63;;5146:118;5303:2;5329:53;5374:7;5365:6;5354:9;5350:22;5329:53;:::i;:::-;5319:63;;5274:118;4780:619;;;;;:::o;5405:663::-;5493:6;5501;5509;5558:2;5546:9;5537:7;5533:23;5529:32;5526:119;;;5564:79;;:::i;:::-;5526:119;5684:1;5709:64;5765:7;5756:6;5745:9;5741:22;5709:64;:::i;:::-;5699:74;;5655:128;5822:2;5848:64;5904:7;5895:6;5884:9;5880:22;5848:64;:::i;:::-;5838:74;;5793:129;5961:2;5987:64;6043:7;6034:6;6023:9;6019:22;5987:64;:::i;:::-;5977:74;;5932:129;5405:663;;;;;:::o;6074:179::-;6143:10;6164:46;6206:3;6198:6;6164:46;:::i;:::-;6242:4;6237:3;6233:14;6219:28;;6074:179;;;;:::o;6259:147::-;6354:45;6393:5;6354:45;:::i;:::-;6349:3;6342:58;6259:147;;:::o;6412:108::-;6489:24;6507:5;6489:24;:::i;:::-;6484:3;6477:37;6412:108;;:::o;6526:118::-;6613:24;6631:5;6613:24;:::i;:::-;6608:3;6601:37;6526:118;;:::o;6680:732::-;6799:3;6828:54;6876:5;6828:54;:::i;:::-;6898:86;6977:6;6972:3;6898:86;:::i;:::-;6891:93;;7008:56;7058:5;7008:56;:::i;:::-;7087:7;7118:1;7103:284;7128:6;7125:1;7122:13;7103:284;;;7204:6;7198:13;7231:63;7290:3;7275:13;7231:63;:::i;:::-;7224:70;;7317:60;7370:6;7317:60;:::i;:::-;7307:70;;7163:224;7150:1;7147;7143:9;7138:14;;7103:284;;;7107:14;7403:3;7396:10;;6804:608;;;6680:732;;;;:::o;7418:109::-;7499:21;7514:5;7499:21;:::i;:::-;7494:3;7487:34;7418:109;;:::o;7533:167::-;7638:55;7687:5;7638:55;:::i;:::-;7633:3;7626:68;7533:167;;:::o;7706:147::-;7801:45;7840:5;7801:45;:::i;:::-;7796:3;7789:58;7706:147;;:::o;7859:364::-;7947:3;7975:39;8008:5;7975:39;:::i;:::-;8030:71;8094:6;8089:3;8030:71;:::i;:::-;8023:78;;8110:52;8155:6;8150:3;8143:4;8136:5;8132:16;8110:52;:::i;:::-;8187:29;8209:6;8187:29;:::i;:::-;8182:3;8178:39;8171:46;;7951:272;7859:364;;;;:::o;8229:366::-;8371:3;8392:67;8456:2;8451:3;8392:67;:::i;:::-;8385:74;;8468:93;8557:3;8468:93;:::i;:::-;8586:2;8581:3;8577:12;8570:19;;8229:366;;;:::o;8601:::-;8743:3;8764:67;8828:2;8823:3;8764:67;:::i;:::-;8757:74;;8840:93;8929:3;8840:93;:::i;:::-;8958:2;8953:3;8949:12;8942:19;;8601:366;;;:::o;8973:::-;9115:3;9136:67;9200:2;9195:3;9136:67;:::i;:::-;9129:74;;9212:93;9301:3;9212:93;:::i;:::-;9330:2;9325:3;9321:12;9314:19;;8973:366;;;:::o;9345:::-;9487:3;9508:67;9572:2;9567:3;9508:67;:::i;:::-;9501:74;;9584:93;9673:3;9584:93;:::i;:::-;9702:2;9697:3;9693:12;9686:19;;9345:366;;;:::o;9717:::-;9859:3;9880:67;9944:2;9939:3;9880:67;:::i;:::-;9873:74;;9956:93;10045:3;9956:93;:::i;:::-;10074:2;10069:3;10065:12;10058:19;;9717:366;;;:::o;10089:::-;10231:3;10252:67;10316:2;10311:3;10252:67;:::i;:::-;10245:74;;10328:93;10417:3;10328:93;:::i;:::-;10446:2;10441:3;10437:12;10430:19;;10089:366;;;:::o;10461:365::-;10603:3;10624:66;10688:1;10683:3;10624:66;:::i;:::-;10617:73;;10699:93;10788:3;10699:93;:::i;:::-;10817:2;10812:3;10808:12;10801:19;;10461:365;;;:::o;10832:398::-;10991:3;11012:83;11093:1;11088:3;11012:83;:::i;:::-;11005:90;;11104:93;11193:3;11104:93;:::i;:::-;11222:1;11217:3;11213:11;11206:18;;10832:398;;;:::o;11236:366::-;11378:3;11399:67;11463:2;11458:3;11399:67;:::i;:::-;11392:74;;11475:93;11564:3;11475:93;:::i;:::-;11593:2;11588:3;11584:12;11577:19;;11236:366;;;:::o;11608:118::-;11695:24;11713:5;11695:24;:::i;:::-;11690:3;11683:37;11608:118;;:::o;11732:112::-;11815:22;11831:5;11815:22;:::i;:::-;11810:3;11803:35;11732:112;;:::o;11850:379::-;12034:3;12056:147;12199:3;12056:147;:::i;:::-;12049:154;;12220:3;12213:10;;11850:379;;;:::o;12235:222::-;12328:4;12366:2;12355:9;12351:18;12343:26;;12379:71;12447:1;12436:9;12432:17;12423:6;12379:71;:::i;:::-;12235:222;;;;:::o;12463:238::-;12564:4;12602:2;12591:9;12587:18;12579:26;;12615:79;12691:1;12680:9;12676:17;12667:6;12615:79;:::i;:::-;12463:238;;;;:::o;12707:807::-;12956:4;12994:3;12983:9;12979:19;12971:27;;13008:71;13076:1;13065:9;13061:17;13052:6;13008:71;:::i;:::-;13089:72;13157:2;13146:9;13142:18;13133:6;13089:72;:::i;:::-;13171:80;13247:2;13236:9;13232:18;13223:6;13171:80;:::i;:::-;13261;13337:2;13326:9;13322:18;13313:6;13261:80;:::i;:::-;13351:73;13419:3;13408:9;13404:19;13395:6;13351:73;:::i;:::-;13434;13502:3;13491:9;13487:19;13478:6;13434:73;:::i;:::-;12707:807;;;;;;;;;:::o;13520:210::-;13607:4;13645:2;13634:9;13630:18;13622:26;;13658:65;13720:1;13709:9;13705:17;13696:6;13658:65;:::i;:::-;13520:210;;;;:::o;13736:258::-;13847:4;13885:2;13874:9;13870:18;13862:26;;13898:89;13984:1;13973:9;13969:17;13960:6;13898:89;:::i;:::-;13736:258;;;;:::o;14000:313::-;14113:4;14151:2;14140:9;14136:18;14128:26;;14200:9;14194:4;14190:20;14186:1;14175:9;14171:17;14164:47;14228:78;14301:4;14292:6;14228:78;:::i;:::-;14220:86;;14000:313;;;;:::o;14319:419::-;14485:4;14523:2;14512:9;14508:18;14500:26;;14572:9;14566:4;14562:20;14558:1;14547:9;14543:17;14536:47;14600:131;14726:4;14600:131;:::i;:::-;14592:139;;14319:419;;;:::o;14744:::-;14910:4;14948:2;14937:9;14933:18;14925:26;;14997:9;14991:4;14987:20;14983:1;14972:9;14968:17;14961:47;15025:131;15151:4;15025:131;:::i;:::-;15017:139;;14744:419;;;:::o;15169:::-;15335:4;15373:2;15362:9;15358:18;15350:26;;15422:9;15416:4;15412:20;15408:1;15397:9;15393:17;15386:47;15450:131;15576:4;15450:131;:::i;:::-;15442:139;;15169:419;;;:::o;15594:::-;15760:4;15798:2;15787:9;15783:18;15775:26;;15847:9;15841:4;15837:20;15833:1;15822:9;15818:17;15811:47;15875:131;16001:4;15875:131;:::i;:::-;15867:139;;15594:419;;;:::o;16019:::-;16185:4;16223:2;16212:9;16208:18;16200:26;;16272:9;16266:4;16262:20;16258:1;16247:9;16243:17;16236:47;16300:131;16426:4;16300:131;:::i;:::-;16292:139;;16019:419;;;:::o;16444:::-;16610:4;16648:2;16637:9;16633:18;16625:26;;16697:9;16691:4;16687:20;16683:1;16672:9;16668:17;16661:47;16725:131;16851:4;16725:131;:::i;:::-;16717:139;;16444:419;;;:::o;16869:::-;17035:4;17073:2;17062:9;17058:18;17050:26;;17122:9;17116:4;17112:20;17108:1;17097:9;17093:17;17086:47;17150:131;17276:4;17150:131;:::i;:::-;17142:139;;16869:419;;;:::o;17294:::-;17460:4;17498:2;17487:9;17483:18;17475:26;;17547:9;17541:4;17537:20;17533:1;17522:9;17518:17;17511:47;17575:131;17701:4;17575:131;:::i;:::-;17567:139;;17294:419;;;:::o;17719:222::-;17812:4;17850:2;17839:9;17835:18;17827:26;;17863:71;17931:1;17920:9;17916:17;17907:6;17863:71;:::i;:::-;17719:222;;;;:::o;17947:831::-;18210:4;18248:3;18237:9;18233:19;18225:27;;18262:71;18330:1;18319:9;18315:17;18306:6;18262:71;:::i;:::-;18343:80;18419:2;18408:9;18404:18;18395:6;18343:80;:::i;:::-;18470:9;18464:4;18460:20;18455:2;18444:9;18440:18;18433:48;18498:108;18601:4;18592:6;18498:108;:::i;:::-;18490:116;;18616:72;18684:2;18673:9;18669:18;18660:6;18616:72;:::i;:::-;18698:73;18766:3;18755:9;18751:19;18742:6;18698:73;:::i;:::-;17947:831;;;;;;;;:::o;18784:332::-;18905:4;18943:2;18932:9;18928:18;18920:26;;18956:71;19024:1;19013:9;19009:17;19000:6;18956:71;:::i;:::-;19037:72;19105:2;19094:9;19090:18;19081:6;19037:72;:::i;:::-;18784:332;;;;;:::o;19122:214::-;19211:4;19249:2;19238:9;19234:18;19226:26;;19262:67;19326:1;19315:9;19311:17;19302:6;19262:67;:::i;:::-;19122:214;;;;:::o;19423:132::-;19490:4;19513:3;19505:11;;19543:4;19538:3;19534:14;19526:22;;19423:132;;;:::o;19561:114::-;19628:6;19662:5;19656:12;19646:22;;19561:114;;;:::o;19681:99::-;19733:6;19767:5;19761:12;19751:22;;19681:99;;;:::o;19786:113::-;19856:4;19888;19883:3;19879:14;19871:22;;19786:113;;;:::o;19905:184::-;20004:11;20038:6;20033:3;20026:19;20078:4;20073:3;20069:14;20054:29;;19905:184;;;;:::o;20095:147::-;20196:11;20233:3;20218:18;;20095:147;;;;:::o;20248:169::-;20332:11;20366:6;20361:3;20354:19;20406:4;20401:3;20397:14;20382:29;;20248:169;;;;:::o;20423:305::-;20463:3;20482:20;20500:1;20482:20;:::i;:::-;20477:25;;20516:20;20534:1;20516:20;:::i;:::-;20511:25;;20670:1;20602:66;20598:74;20595:1;20592:81;20589:107;;;20676:18;;:::i;:::-;20589:107;20720:1;20717;20713:9;20706:16;;20423:305;;;;:::o;20734:185::-;20774:1;20791:20;20809:1;20791:20;:::i;:::-;20786:25;;20825:20;20843:1;20825:20;:::i;:::-;20820:25;;20864:1;20854:35;;20869:18;;:::i;:::-;20854:35;20911:1;20908;20904:9;20899:14;;20734:185;;;;:::o;20925:348::-;20965:7;20988:20;21006:1;20988:20;:::i;:::-;20983:25;;21022:20;21040:1;21022:20;:::i;:::-;21017:25;;21210:1;21142:66;21138:74;21135:1;21132:81;21127:1;21120:9;21113:17;21109:105;21106:131;;;21217:18;;:::i;:::-;21106:131;21265:1;21262;21258:9;21247:20;;20925:348;;;;:::o;21279:191::-;21319:4;21339:20;21357:1;21339:20;:::i;:::-;21334:25;;21373:20;21391:1;21373:20;:::i;:::-;21368:25;;21412:1;21409;21406:8;21403:34;;;21417:18;;:::i;:::-;21403:34;21462:1;21459;21455:9;21447:17;;21279:191;;;;:::o;21476:96::-;21513:7;21542:24;21560:5;21542:24;:::i;:::-;21531:35;;21476:96;;;:::o;21578:104::-;21623:7;21652:24;21670:5;21652:24;:::i;:::-;21641:35;;21578:104;;;:::o;21688:90::-;21722:7;21765:5;21758:13;21751:21;21740:32;;21688:90;;;:::o;21784:126::-;21821:7;21861:42;21854:5;21850:54;21839:65;;21784:126;;;:::o;21916:77::-;21953:7;21982:5;21971:16;;21916:77;;;:::o;21999:86::-;22034:7;22074:4;22067:5;22063:16;22052:27;;21999:86;;;:::o;22091:134::-;22149:9;22182:37;22213:5;22182:37;:::i;:::-;22169:50;;22091:134;;;:::o;22231:144::-;22299:9;22332:37;22363:5;22332:37;:::i;:::-;22319:50;;22231:144;;;:::o;22381:121::-;22439:9;22472:24;22490:5;22472:24;:::i;:::-;22459:37;;22381:121;;;:::o;22508:126::-;22558:9;22591:37;22622:5;22591:37;:::i;:::-;22578:50;;22508:126;;;:::o;22640:113::-;22690:9;22723:24;22741:5;22723:24;:::i;:::-;22710:37;;22640:113;;;:::o;22759:307::-;22827:1;22837:113;22851:6;22848:1;22845:13;22837:113;;;22936:1;22931:3;22927:11;22921:18;22917:1;22912:3;22908:11;22901:39;22873:2;22870:1;22866:10;22861:15;;22837:113;;;22968:6;22965:1;22962:13;22959:101;;;23048:1;23039:6;23034:3;23030:16;23023:27;22959:101;22808:258;22759:307;;;:::o;23072:180::-;23120:77;23117:1;23110:88;23217:4;23214:1;23207:15;23241:4;23238:1;23231:15;23258:180;23306:77;23303:1;23296:88;23403:4;23400:1;23393:15;23427:4;23424:1;23417:15;23444:180;23492:77;23489:1;23482:88;23589:4;23586:1;23579:15;23613:4;23610:1;23603:15;23630:180;23678:77;23675:1;23668:88;23775:4;23772:1;23765:15;23799:4;23796:1;23789:15;23939:117;24048:1;24045;24038:12;24062:102;24103:6;24154:2;24150:7;24145:2;24138:5;24134:14;24130:28;24120:38;;24062:102;;;:::o;24170:224::-;24310:34;24306:1;24298:6;24294:14;24287:58;24379:7;24374:2;24366:6;24362:15;24355:32;24170:224;:::o;24400:167::-;24540:19;24536:1;24528:6;24524:14;24517:43;24400:167;:::o;24573:177::-;24713:29;24709:1;24701:6;24697:14;24690:53;24573:177;:::o;24756:180::-;24896:32;24892:1;24884:6;24880:14;24873:56;24756:180;:::o;24942:163::-;25082:15;25078:1;25070:6;25066:14;25059:39;24942:163;:::o;25111:220::-;25251:34;25247:1;25239:6;25235:14;25228:58;25320:3;25315:2;25307:6;25303:15;25296:28;25111:220;:::o;25337:156::-;25477:8;25473:1;25465:6;25461:14;25454:32;25337:156;:::o;25499:114::-;;:::o;25619:161::-;25759:13;25755:1;25747:6;25743:14;25736:37;25619:161;:::o;25786:122::-;25859:24;25877:5;25859:24;:::i;:::-;25852:5;25849:35;25839:63;;25898:1;25895;25888:12;25839:63;25786:122;:::o;25914:138::-;25995:32;26021:5;25995:32;:::i;:::-;25988:5;25985:43;25975:71;;26042:1;26039;26032:12;25975:71;25914:138;:::o;26058:116::-;26128:21;26143:5;26128:21;:::i;:::-;26121:5;26118:32;26108:60;;26164:1;26161;26154:12;26108:60;26058:116;:::o;26180:122::-;26253:24;26271:5;26253:24;:::i;:::-;26246:5;26243:35;26233:63;;26292:1;26289;26282:12;26233:63;26180:122;:::o

Swarm Source

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