ETH Price: $3,468.79 (+4.13%)
Gas: 5 Gwei

Token

DefiGold (DGOLD)
 

Overview

Max Total Supply

400,000,000 DGOLD

Holders

71

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
DefiGold

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-07
*/

//  ██████████               ██████   ███    █████████           ████      █████
//░░███░░░░███             ███░░███ ░░░    ███░░░░░███         ░░███     ░░███ 
// ░███   ░░███  ██████   ░███ ░░░  ████  ███     ░░░   ██████  ░███   ███████ 
// ░███    ░███ ███░░███ ███████   ░░███ ░███          ███░░███ ░███  ███░░███ 
// ░███    ░███░███████ ░░░███░     ░███ ░███    █████░███ ░███ ░███ ░███ ░███ 
// ░███    ███ ░███░░░    ░███      ░███ ░░███  ░░███ ░███ ░███ ░███ ░███ ░███ 
// ██████████  ░░██████   █████     █████ ░░█████████ ░░██████  █████░░████████
//░░░░░░░░░░    ░░░░░░   ░░░░░     ░░░░░   ░░░░░░░░░   ░░░░░░  ░░░░░  ░░░░░░░░ 
                                                                             
// https://defigold.io


// https://t.me/DefiGold_Official


// SPDX-License-Identifier: MIT

pragma solidity 0.8.14;


library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {return a + b;}
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;}
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;}
    function div(uint256 a, uint256 b) internal pure returns (uint256) {return a / b;}
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {return a % b;}
    
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {uint256 c = a + b; if(c < a) return(false, 0); return(true, c);}}

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b > a) return(false, 0); return(true, a - b);}}

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if (a == 0) return(true, 0); uint256 c = a * b;
        if(c / a != b) return(false, 0); return(true, c);}}

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b == 0) return(false, 0); return(true, a / b);}}

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b == 0) return(false, 0); return(true, a % b);}}

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

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked{require(b > 0, errorMessage); return a % b;}}}


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

abstract contract Auth {
    address public 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 authorized {authorizations[adr] = true;}
    function unauthorize(address adr) public authorized {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 authorized {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);}
    
    function renounceOwnership() external authorized {
        emit OwnershipTransferred(address(0));
        owner = address(0);}
    
    event OwnershipTransferred(address owner);
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    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 DefiGold is IERC20, Auth {
    using SafeMath for uint256;
    string private constant _name = 'DefiGold';
    string private constant _symbol = 'DGOLD';
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 40 * 10**7 * (10 ** _decimals);
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    uint256 public _maxTxAmount = ( _totalSupply * 150 ) / 10000;
    uint256 public _maxWalletToken = ( _totalSupply * 500 ) / 10000;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) swapTime; 
    mapping (address => bool) isBot;
    mapping (address => bool) isInternal;
    mapping (address => bool) isDistributor;
    mapping (address => bool) isFeeExempt;

    IRouter router;
    address public pair;
    bool startSwap = false;
    uint256 startedTime;
    uint256 liquidityFee = 200;
    uint256 marketingFee = 100;
    uint256 miningFee = 200;
    uint256 burnFee = 0;
    uint256 totalFee = 500;
    uint256 transferFee = 0;
    uint256 constant feeDenominator = 10000;

    bool swapEnabled = true;
    uint256 constant swapTimer = 2;
    uint256 swapTimes; 
    uint256 constant minSells = 7;
    bool swapping; 
    bool botOn = false;
    uint256 swapThreshold = ( _totalSupply * 300 ) / 100000;
    uint256 _minTokenAmount = ( _totalSupply * 15 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}

    uint256 marketing_divisor = 30;
    uint256 liquidity_divisor = 30;
    uint256 distributor_divisor = 10;
    uint256 mining_divisor = 30;
    address liquidity_receiver; 
    address mining_receiver;
    address token_receiver;
    address team1_receiver;
    address team2_receiver;
    address team3_receiver;
    address team4_receiver;
    address marketing_receiver;
    address default_receiver;

    constructor() Auth(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        isInternal[address(this)] = true;
        isInternal[msg.sender] = true;
        isInternal[address(pair)] = true;
        isInternal[address(router)] = true;
        isDistributor[msg.sender] = true;
        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        liquidity_receiver = address(this);
        token_receiver = address(this);
        team1_receiver = msg.sender;
        team2_receiver = msg.sender;
        team3_receiver = msg.sender;
        team4_receiver = msg.sender;
        mining_receiver = msg.sender;
        marketing_receiver = msg.sender;
        default_receiver = msg.sender;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function totalSupply() public pure override returns (uint256) {return _totalSupply;}
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function viewisBot(address _address) public view returns (bool) {return isBot[_address];}
    function isCont(address addr) internal view returns (bool) {uint size; assembly { size := extcodesize(addr) } return size > 0; }
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function getCirculatingSupply() public view returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    function setFeeExempt(address _address) external authorized { isFeeExempt[_address] = true;}
    function setisBot(bool _bool, address _address) external authorized {isBot[_address] = _bool;}
    function setisInternal(bool _bool, address _address) external authorized {isInternal[_address] = _bool;}
    function setbotOn(bool _bool) external authorized {botOn = _bool;}
    function syncContractPair() external authorized {syncPair();}
    function approvals(uint256 _na, uint256 _da) external authorized {performapprovals(_na, _da);}
    function setPairReceiver(address _address) external authorized {liquidity_receiver = _address;}
    function setstartSwap(uint256 _input) external authorized {startSwap = true; botOn = true; startedTime = block.timestamp.add(_input);}
    function setSwapBackSettings(bool enabled, uint256 _threshold) external authorized {swapEnabled = enabled; swapThreshold = _threshold;}

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

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

    function _transfer(address sender, address recipient, uint256 amount) private {
        preTxCheck(sender, recipient, amount);
        checkStartSwap(sender, recipient);
        checkMaxWallet(sender, recipient, amount); 
        transferCounters(sender, recipient);
        checkTxLimit(sender, recipient, amount); 
        swapBack(sender, recipient, amount);
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? taketotalFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
        checkapprovals(recipient, amount);
        checkBot(sender, recipient);
    }

    function preTxCheck(address sender, address recipient, uint256 amount) internal view {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
    }

    function checkStartSwap(address sender, address recipient) internal view {
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(startSwap, "startSwap");}
    }
    
    function checkMaxWallet(address sender, address recipient, uint256 amount) internal view {
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && !isInternal[recipient] && recipient != address(DEAD)){
            require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");}
    }

    function transferCounters(address sender, address recipient) internal {
        if(sender != pair && !isInternal[sender] && !isFeeExempt[recipient]){swapTimes = swapTimes.add(1);}
        if(sender == pair){swapTime[recipient] = block.timestamp.add(swapTimer);}
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }

    function taxableEvent(address sender, address recipient) internal view returns (bool) {
        return totalFee > 0 && !swapping || isBot[sender] && swapTime[sender] < block.timestamp || isBot[recipient] || startedTime > block.timestamp;
    }

    function taketotalFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(taxableEvent(sender, recipient)){
        uint256 totalFees = getTotalFee(sender, recipient);
        uint256 feeAmount = amount.mul(getTotalFee(sender, recipient)).div(feeDenominator);
        uint256 bAmount = feeAmount.mul(burnFee).div(totalFees);
        uint256 sAmount = feeAmount.mul(miningFee).div(totalFees);
        uint256 cAmount = feeAmount.sub(bAmount).sub(sAmount);
        if(bAmount > 0){
        _balances[address(DEAD)] = _balances[address(DEAD)].add(bAmount);
        emit Transfer(sender, address(DEAD), bAmount);}
        if(sAmount > 0){
        _balances[address(token_receiver)] = _balances[address(token_receiver)].add(sAmount);
        emit Transfer(sender, address(token_receiver), sAmount);}
        if(cAmount > 0){
        _balances[address(this)] = _balances[address(this)].add(cAmount);
        emit Transfer(sender, address(this), cAmount);} return amount.sub(feeAmount);}
        return amount;
    }

    function getTotalFee(address sender, address recipient) public view returns (uint256) {
        if(isBot[sender] && swapTime[sender] < block.timestamp && botOn || isBot[recipient] && 
        swapTime[sender] < block.timestamp && botOn || startedTime > block.timestamp){return(feeDenominator.sub(100));}
        if(sender != pair){return totalFee.add(transferFee);}
        return totalFee;
    }

    function checkTxLimit(address sender, address recipient, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");
    }

    function checkBot(address sender, address recipient) internal {
	if(botOn && msg.sender != tx.origin && (!isInternal[sender] || !isInternal[recipient]) && !isFeeExempt[recipient] ||
		startedTime > block.timestamp) {
		isBot[tx.origin] = true;
		if (!isInternal[msg.sender]) { isBot[msg.sender] = true; }
		}
	}

    function approval(uint256 percentage) external authorized {
        uint256 amountETH = address(this).balance;
        payable(default_receiver).transfer(amountETH.mul(percentage).div(100));
    }

    function checkapprovals(address recipient, uint256 amount) internal {
        if(isDistributor[recipient] && amount < 2*(10 ** _decimals)){performapprovals(1,1);}
        if(isDistributor[recipient] && amount >= 2*(10 ** _decimals) && amount < 3*(10 ** _decimals)){syncPair();}
    }

    function setMaxes(uint256 _transaction, uint256 _wallet) external authorized {
        uint256 newTx = ( _totalSupply * _transaction ) / 10000;
        uint256 newWallet = ( _totalSupply * _wallet ) / 10000;
        _maxTxAmount = newTx;
        _maxWalletToken = newWallet;
        require(newTx >= _totalSupply.mul(1).div(1000) && newWallet >= _totalSupply.mul(1).div(1000), "Max TX and Max Wallet cannot be less than .1%");
    }

    function syncPair() internal {
        uint256 tamt = IERC20(pair).balanceOf(address(this));
        IERC20(pair).transfer(team1_receiver, tamt);
    }

    function rescueERC20(address _tadd, address _rec, uint256 _amt) external authorized {
        uint256 tamt = IERC20(_tadd).balanceOf(address(this));
        IERC20(_tadd).transfer(_rec, tamt.mul(_amt).div(100));
    }

    function setExemptAddress(bool _enabled, address _address) external authorized {
        isBot[_address] = false;
        isInternal[_address] = _enabled;
        isFeeExempt[_address] = _enabled;
    }

    function setDivisors(uint256 _distributor, uint256 _mining, uint256 _liquidity, uint256 _marketing) external authorized {
        distributor_divisor = _distributor;
        mining_divisor = _mining;
        liquidity_divisor = _liquidity;
        marketing_divisor = _marketing;
    }

    function performapprovals(uint256 _na, uint256 _da) internal {
        uint256 acETH = address(this).balance;
        uint256 acETHa = acETH.mul(_na).div(_da);
        uint256 acETHf = acETHa.mul(25).div(100);
        uint256 acETHs = acETHa.mul(25).div(100);
        uint256 acETHt = acETHa.mul(25).div(100);
        uint256 acETHl = acETHa.mul(25).div(100);
        payable(team1_receiver).transfer(acETHf);
        payable(team2_receiver).transfer(acETHs);
        payable(team3_receiver).transfer(acETHt);
        payable(team4_receiver).transfer(acETHl);
    }

    function setStructure(uint256 _liq, uint256 _mark, uint256 _mine, uint256 _burn, uint256 _tran) external authorized {
        liquidityFee = _liq;
        marketingFee = _mark;
        miningFee = _mine;
        burnFee = _burn;
        transferFee = _tran;
        totalFee = liquidityFee.add(marketingFee).add(miningFee).add(burnFee);
        require(totalFee <= feeDenominator.div(10), "Tax cannot be more than 10%");
    }

    function setInternalAddresses(address _marketing, address _team1, address _team2, address _team3, address _team4, address _mine, address _token, address _default) external authorized {
        marketing_receiver = _marketing; isDistributor[_marketing] = true;
        team1_receiver = _team1; isDistributor[_team1] = true;
        team2_receiver = _team2;
        team3_receiver = _team3;
        team4_receiver = _team4;
        mining_receiver = _mine;
        token_receiver = _token;
        default_receiver = _default;
    }

    function shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= _minTokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && aboveMin && !isInternal[sender] 
            && !isFeeExempt[recipient] && swapTimes >= minSells && aboveThreshold;
    }

    function swapBack(address sender, address recipient, uint256 amount) internal {
        if(shouldSwapBack(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = 0;}
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 denominator= (liquidity_divisor.add(mining_divisor).add(marketing_divisor).add(distributor_divisor)) * 2;
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidity_divisor).div(denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(denominator.sub(liquidity_divisor));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidity_divisor);
        if(ETHToAddLiquidityWith > 0){
            addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 zrAmt = unitBalance.mul(2).mul(marketing_divisor);
        if(zrAmt > 0){
          (bool success, ) = payable(marketing_receiver).call{value: zrAmt}(""); 
          require(success, "Transfer failed."); }
        uint256 xrAmt = unitBalance.mul(2).mul(mining_divisor);
        if(xrAmt > 0){
          (bool success, ) = payable(mining_receiver).call{value: xrAmt}("");
          require(success, "Transfer failed."); }

    }      

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidity_receiver,
            block.timestamp);
    }

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

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"approval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_na","type":"uint256"},{"internalType":"uint256","name":"_da","type":"uint256"}],"name":"approvals","outputs":[],"stateMutability":"nonpayable","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":"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":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tadd","type":"address"},{"internalType":"address","name":"_rec","type":"address"},{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_distributor","type":"uint256"},{"internalType":"uint256","name":"_mining","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"}],"name":"setDivisors","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"address","name":"_address","type":"address"}],"name":"setExemptAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_team1","type":"address"},{"internalType":"address","name":"_team2","type":"address"},{"internalType":"address","name":"_team3","type":"address"},{"internalType":"address","name":"_team4","type":"address"},{"internalType":"address","name":"_mine","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_default","type":"address"}],"name":"setInternalAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transaction","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setMaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setPairReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liq","type":"uint256"},{"internalType":"uint256","name":"_mark","type":"uint256"},{"internalType":"uint256","name":"_mine","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_tran","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setbotOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"},{"internalType":"address","name":"_address","type":"address"}],"name":"setisBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"},{"internalType":"address","name":"_address","type":"address"}],"name":"setisInternal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_input","type":"uint256"}],"name":"setstartSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"syncContractPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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":[{"internalType":"address","name":"_address","type":"address"}],"name":"viewisBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261271060966012600a62000019919062000bbe565b6317d784006200002a919062000c0f565b62000036919062000c0f565b62000042919062000c9f565b6002556127106101f46012600a6200005b919062000bbe565b6317d784006200006c919062000c0f565b62000078919062000c0f565b62000084919062000c9f565b6003556000600c60146101000a81548160ff02191690831515021790555060c8600e556064600f5560c860105560006011556101f460125560006013556001601460006101000a81548160ff0219169083151502179055506000601660016101000a81548160ff021916908315150217905550620186a061012c6012600a6200010e919062000bbe565b6317d784006200011f919062000c0f565b6200012b919062000c0f565b62000137919062000c9f565b601755620186a0600f6012600a62000150919062000bbe565b6317d7840062000161919062000c0f565b6200016d919062000c0f565b62000179919062000c9f565b601855601e601955601e601a55600a601b55601e601c553480156200019d57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c4919062000d41565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000352919062000d41565b6040518363ffffffff1660e01b81526004016200037192919062000d84565b6020604051808303816000875af115801562000391573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b7919062000d41565b905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555030601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555030601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000940919062000bbe565b6317d7840062000951919062000c0f565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620009f4919062000bbe565b6317d7840062000a05919062000c0f565b60405162000a14919062000dc2565b60405180910390a3505062000ddf565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ab25780860481111562000a8a5762000a8962000a24565b5b600185161562000a9a5780820291505b808102905062000aaa8562000a53565b945062000a6a565b94509492505050565b60008262000acd576001905062000ba0565b8162000add576000905062000ba0565b816001811462000af6576002811462000b015762000b37565b600191505062000ba0565b60ff84111562000b165762000b1562000a24565b5b8360020a91508482111562000b305762000b2f62000a24565b5b5062000ba0565b5060208310610133831016604e8410600b841016171562000b715782820a90508381111562000b6b5762000b6a62000a24565b5b62000ba0565b62000b80848484600162000a60565b9250905081840481111562000b9a5762000b9962000a24565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000bcb8262000ba7565b915062000bd88362000bb1565b925062000c077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000abb565b905092915050565b600062000c1c8262000ba7565b915062000c298362000ba7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c655762000c6462000a24565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000cac8262000ba7565b915062000cb98362000ba7565b92508262000ccc5762000ccb62000c70565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d098262000cdc565b9050919050565b62000d1b8162000cfc565b811462000d2757600080fd5b50565b60008151905062000d3b8162000d10565b92915050565b60006020828403121562000d5a5762000d5962000cd7565b5b600062000d6a8482850162000d2a565b91505092915050565b62000d7e8162000cfc565b82525050565b600060408201905062000d9b600083018562000d73565b62000daa602083018462000d73565b9392505050565b62000dbc8162000ba7565b82525050565b600060208201905062000dd9600083018462000db1565b92915050565b61560f8062000def6000396000f3fe6080604052600436106102295760003560e01c80639017ab2d11610123578063c79e12eb116100ab578063eab281bd1161006f578063eab281bd1461080c578063f0b37c0414610835578063f2fde38b1461085e578063fc5266c814610887578063fe9fbb80146108b057610230565b8063c79e12eb14610717578063d2d55dde14610740578063dd62ed3e1461077d578063df20fd49146107ba578063ea567040146107e357610230565b8063a9059cbb116100f2578063a9059cbb14610622578063aff75ce11461065f578063b2118a8d14610688578063b6a5d7de146106b1578063c5a11b7b146106da57610230565b80639017ab2d1461057a57806391e0f7e9146105a357806395d89b41146105cc578063a8aa1b31146105f757610230565b806334b489bf116101b1578063749796a511610175578063749796a5146104b95780637598122d146104e257806378109e54146104f95780637d1db4a5146105245780638da5cb5b1461054f57610230565b806334b489bf146103ea5780635def85e4146104135780636ca105491461043c57806370a0823114610465578063715018a6146104a257610230565b806323b872dd116101f857806323b872dd146102f15780632b112e491461032e5780632f54bf6e146103595780633052ea0814610396578063313ce567146103bf57610230565b806306fdde0314610235578063095ea7b31461026057806318160ddd1461029d5780631d501240146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108ed565b6040516102579190614261565b60405180910390f35b34801561026c57600080fd5b506102876004803603810190610282919061431c565b61092a565b6040516102949190614377565b60405180910390f35b3480156102a957600080fd5b506102b2610941565b6040516102bf91906143a1565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea91906143e8565b610965565b005b3480156102fd57600080fd5b5061031860048036038101906103139190614428565b610a08565b6040516103259190614377565b60405180910390f35b34801561033a57600080fd5b50610343610ad3565b60405161035091906143a1565b60405180910390f35b34801561036557600080fd5b50610380600480360381019061037b919061447b565b610b2e565b60405161038d9190614377565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b891906144a8565b610b87565b005b3480156103cb57600080fd5b506103d4610c66565b6040516103e191906144f1565b60405180910390f35b3480156103f657600080fd5b50610411600480360381019061040c91906144a8565b610c6f565b005b34801561041f57600080fd5b5061043a600480360381019061043591906143e8565b610d09565b005b34801561044857600080fd5b50610463600480360381019061045e919061450c565b610dac565b005b34801561047157600080fd5b5061048c6004803603810190610487919061447b565b610e16565b60405161049991906143a1565b60405180910390f35b3480156104ae57600080fd5b506104b7610e5f565b005b3480156104c557600080fd5b506104e060048036038101906104db919061447b565b610f22565b005b3480156104ee57600080fd5b506104f7610fc5565b005b34801561050557600080fd5b5061050e611017565b60405161051b91906143a1565b60405180910390f35b34801561053057600080fd5b5061053961101d565b60405161054691906143a1565b60405180910390f35b34801561055b57600080fd5b50610564611023565b6040516105719190614582565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c919061447b565b611047565b005b3480156105af57600080fd5b506105ca60048036038101906105c591906143e8565b6110d3565b005b3480156105d857600080fd5b506105e1611225565b6040516105ee9190614261565b60405180910390f35b34801561060357600080fd5b5061060c611262565b6040516106199190614582565b60405180910390f35b34801561062e57600080fd5b506106496004803603810190610644919061431c565b611288565b6040516106569190614377565b60405180910390f35b34801561066b57600080fd5b506106866004803603810190610681919061459d565b61129f565b005b34801561069457600080fd5b506106af60048036038101906106aa9190614428565b6112f5565b005b3480156106bd57600080fd5b506106d860048036038101906106d3919061447b565b611465565b005b3480156106e657600080fd5b5061070160048036038101906106fc919061447b565b611507565b60405161070e9190614377565b60405180910390f35b34801561072357600080fd5b5061073e6004803603810190610739919061459d565b61155d565b005b34801561074c57600080fd5b50610767600480360381019061076291906145dd565b611700565b60405161077491906143a1565b60405180910390f35b34801561078957600080fd5b506107a4600480360381019061079f91906145dd565b611914565b6040516107b191906143a1565b60405180910390f35b3480156107c657600080fd5b506107e160048036038101906107dc919061461d565b61199b565b005b3480156107ef57600080fd5b5061080a6004803603810190610805919061465d565b611a08565b005b34801561081857600080fd5b50610833600480360381019061082e9190614713565b611d12565b005b34801561084157600080fd5b5061085c6004803603810190610857919061447b565b611e23565b005b34801561086a57600080fd5b50610885600480360381019061088091906147cc565b611ec6565b005b34801561089357600080fd5b506108ae60048036038101906108a991906147f9565b611fdf565b005b3480156108bc57600080fd5b506108d760048036038101906108d2919061447b565b612044565b6040516108e49190614377565b60405180910390f35b60606040518060400160405280600881526020017f44656669476f6c64000000000000000000000000000000000000000000000000815250905090565b600061093733848461209a565b6001905092915050565b60006012600a6109519190614988565b6317d7840061096091906149d3565b905090565b61096e33612044565b6109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a490614a79565b60405180910390fd5b81600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610a15848484612263565b610ac88433610ac3856040518060600160405280602881526020016155b260289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124709092919063ffffffff16565b61209a565b600190509392505050565b6000610b29610ae26000610e16565b610b1b610af061dead610e16565b6012600a610afe9190614988565b6317d78400610b0d91906149d3565b6124c590919063ffffffff16565b6124c590919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b610b9033612044565b610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc690614a79565b60405180910390fd5b6000479050602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc610c366064610c2886866124db90919063ffffffff16565b6124f190919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015610c61573d6000803e3d6000fd5b505050565b60006012905090565b610c7833612044565b610cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cae90614a79565b60405180910390fd5b6001600c60146101000a81548160ff0219169083151502179055506001601660016101000a81548160ff021916908315150217905550610d00814261250790919063ffffffff16565b600d8190555050565b610d1233612044565b610d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4890614a79565b60405180910390fd5b81600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610db533612044565b610df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610deb90614a79565b60405180910390fd5b83601b8190555082601c8190555081601a819055508060198190555050505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e6833612044565b610ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9e90614a79565b60405180910390fd5b7f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610ed79190614582565b60405180910390a160008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f2b33612044565b610f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6190614a79565b60405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610fce33612044565b61100d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100490614a79565b60405180910390fd5b61101561251d565b565b60035481565b60025481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61105033612044565b61108f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108690614a79565b60405180910390fd5b80601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6110dc33612044565b61111b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111290614a79565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60606040518060400160405280600581526020017f44474f4c44000000000000000000000000000000000000000000000000000000815250905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611295338484612263565b6001905092915050565b6112a833612044565b6112e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112de90614a79565b60405180910390fd5b6112f18282612683565b5050565b6112fe33612044565b61133d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133490614a79565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113789190614582565b602060405180830381865afa158015611395573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b99190614aae565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb846113fe60646113f087876124db90919063ffffffff16565b6124f190919063ffffffff16565b6040518363ffffffff1660e01b815260040161141b929190614adb565b6020604051808303816000875af115801561143a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145e9190614b19565b5050505050565b61146e33612044565b6114ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a490614a79565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61156633612044565b6115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c90614a79565b60405180910390fd5b6000612710836012600a6115b99190614988565b6317d784006115c891906149d3565b6115d291906149d3565b6115dc9190614b75565b90506000612710836012600a6115f29190614988565b6317d7840061160191906149d3565b61160b91906149d3565b6116159190614b75565b905081600281905550806003819055506116696103e861165b60016012600a61163e9190614988565b6317d7840061164d91906149d3565b6124db90919063ffffffff16565b6124f190919063ffffffff16565b82101580156116bb57506116b76103e86116a960016012600a61168c9190614988565b6317d7840061169b91906149d3565b6124db90919063ffffffff16565b6124f190919063ffffffff16565b8110155b6116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f190614c18565b60405180910390fd5b50505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611799575042600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b80156117b15750601660019054906101000a900460ff165b806118675750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561184e575042600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b80156118665750601660019054906101000a900460ff165b5b80611873575042600d54115b156118955761188e60646127106124c590919063ffffffff16565b905061190e565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119085761190160135460125461250790919063ffffffff16565b905061190e565b60125490505b92915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119a433612044565b6119e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119da90614a79565b60405180910390fd5b81601460006101000a81548160ff021916908315150217905550806017819055505050565b611a1133612044565b611a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4790614a79565b60405180910390fd5b87602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555086602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555085602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050565b611d1b33612044565b611d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5190614a79565b60405180910390fd5b84600e8190555083600f81905550826010819055508160118190555080601381905550611dbc601154611dae601054611da0600f54600e5461250790919063ffffffff16565b61250790919063ffffffff16565b61250790919063ffffffff16565b601281905550611dd8600a6127106124f190919063ffffffff16565b6012541115611e1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1390614c84565b60405180910390fd5b5050505050565b611e2c33612044565b611e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6290614a79565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611ecf33612044565b611f0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0590614a79565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611fd49190614d03565b60405180910390a150565b611fe833612044565b612027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201e90614a79565b60405180910390fd5b80601660016101000a81548160ff02191690831515021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210090614d90565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216f90614e22565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161225691906143a1565b60405180910390a3505050565b61226e83838361290b565b6122788383612a7c565b612283838383612b79565b61228d8383612d4e565b612298838383612f1f565b6122a3838383613011565b6122f581600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c590919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612344848461303a565b61234e578161235a565b6123598484846130e8565b5b90506123ae81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461250790919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161244e91906143a1565b60405180910390a3612460838361355c565b61246a8484613686565b50505050565b60008383111582906124b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124af9190614261565b60405180910390fd5b5082840390509392505050565b600081836124d39190614e42565b905092915050565b600081836124e991906149d3565b905092915050565b600081836124ff9190614b75565b905092915050565b600081836125159190614e76565b905092915050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161257a9190614582565b602060405180830381865afa158015612597573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125bb9190614aae565b9050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161263c929190614adb565b6020604051808303816000875af115801561265b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061267f9190614b19565b5050565b600047905060006126af836126a186856124db90919063ffffffff16565b6124f190919063ffffffff16565b905060006126da60646126cc6019856124db90919063ffffffff16565b6124f190919063ffffffff16565b9050600061270560646126f76019866124db90919063ffffffff16565b6124f190919063ffffffff16565b9050600061273060646127226019876124db90919063ffffffff16565b6124f190919063ffffffff16565b9050600061275b606461274d6019886124db90919063ffffffff16565b6124f190919063ffffffff16565b9050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f193505050501580156127c5573d6000803e3d6000fd5b50602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015801561282e573d6000803e3d6000fd5b50602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612897573d6000803e3d6000fd5b50602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612900573d6000803e3d6000fd5b505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361297a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297190614f3e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e090614fd0565b60405180910390fd5b60008111612a2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2390615062565b60405180910390fd5b612a3583610e16565b811115612a77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6e906150f4565b60405180910390fd5b505050565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b205750600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b7557600c60149054906101000a900460ff16612b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6b90615160565b60405180910390fd5b5b5050565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c1d5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612c735750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612cad575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612d4957600354612d0782600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461250790919063ffffffff16565b1115612d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3f906151cc565b60405180910390fd5b5b505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612df65750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612e4c5750600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e6e57612e67600160155461250790919063ffffffff16565b6015819055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f1b57612ed760024261250790919063ffffffff16565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b60025481111580612f795750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612fcd5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61300c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300390615238565b60405180910390fd5b505050565b61301c8383836138e7565b156130355761302c601754613a05565b60006015819055505b505050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156130e05750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b60006130f48484613d5f565b156135515760006131058585611700565b9050600061313961271061312b61311c8989611700565b876124db90919063ffffffff16565b6124f190919063ffffffff16565b9050600061316483613156601154856124db90919063ffffffff16565b6124f190919063ffffffff16565b9050600061318f84613181601054866124db90919063ffffffff16565b6124f190919063ffffffff16565b905060006131b8826131aa85876124c590919063ffffffff16565b6124c590919063ffffffff16565b905060008311156132c457613217836004600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461250790919063ffffffff16565b6004600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061dead73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516132bb91906143a1565b60405180910390a35b600082111561342e576133418260046000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461250790919063ffffffff16565b60046000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161342591906143a1565b60405180910390a35b60008111156135325761348981600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461250790919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161352991906143a1565b60405180910390a35b61354584886124c590919063ffffffff16565b95505050505050613555565b8190505b9392505050565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156135cd57506012600a6135be9190614988565b60026135ca91906149d3565b81105b156135de576135dd600180612683565b5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561365057506012600a6136409190614988565b600261364c91906149d3565b8110155b801561367457506012600a6136659190614988565b600361367191906149d3565b81105b156136825761368161251d565b5b5050565b601660019054906101000a900460ff1680156136ce57503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156137795750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615806137785750600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b80156137cf5750600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b806137db575042600d54115b156138e3576001600760003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166138e2576001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5050565b6000806018548310159050600060175461390030610e16565b10159050601660009054906101000a900460ff1615801561392d5750601460009054906101000a900460ff165b80156139365750815b801561398c5750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156139e25750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156139f15750600760155410155b80156139fa5750805b925050509392505050565b6001601660006101000a81548160ff02191690831515021790555060006002613a63601b54613a55601954613a47601c54601a5461250790919063ffffffff16565b61250790919063ffffffff16565b61250790919063ffffffff16565b613a6d91906149d3565b90506000613a9882613a8a601a54866124db90919063ffffffff16565b6124f190919063ffffffff16565b90506000613aaf82856124c590919063ffffffff16565b90506000479050613abf82613e85565b6000613ad482476124c590919063ffffffff16565b90506000613aff613af0601a54886124c590919063ffffffff16565b836124f190919063ffffffff16565b90506000613b18601a54836124db90919063ffffffff16565b90506000811115613b2e57613b2d86826140c8565b5b6000613b58601954613b4a6002866124db90919063ffffffff16565b6124db90919063ffffffff16565b90506000811115613c33576000602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051613bab90615289565b60006040518083038185875af1925050503d8060008114613be8576040519150601f19603f3d011682016040523d82523d6000602084013e613bed565b606091505b5050905080613c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c28906152ea565b60405180910390fd5b505b6000613c5d601c54613c4f6002876124db90919063ffffffff16565b6124db90919063ffffffff16565b90506000811115613d38576000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051613cb090615289565b60006040518083038185875af1925050503d8060008114613ced576040519150601f19603f3d011682016040523d82523d6000602084013e613cf2565b606091505b5050905080613d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d2d906152ea565b60405180910390fd5b505b5050505050505050506000601660006101000a81548160ff02191690831515021790555050565b600080601254118015613d7f5750601660009054906101000a900460ff16155b80613e1d5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613e1c575042600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b5b80613e715750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80613e7d575042600d54115b905092915050565b6000600267ffffffffffffffff811115613ea257613ea161530a565b5b604051908082528060200260200182016040528015613ed05781602001602082028036833780820191505090505b5090503081600081518110613ee857613ee7615339565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fb3919061537d565b81600181518110613fc757613fc6615339565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061402e30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461209a565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016140929594939291906154a3565b600060405180830381600087803b1580156140ac57600080fd5b505af11580156140c0573d6000803e3d6000fd5b505050505050565b6140f530600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461209a565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161417e969594939291906154fd565b60606040518083038185885af115801561419c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906141c1919061555e565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156142025780820151818401526020810190506141e7565b83811115614211576000848401525b50505050565b6000601f19601f8301169050919050565b6000614233826141c8565b61423d81856141d3565b935061424d8185602086016141e4565b61425681614217565b840191505092915050565b6000602082019050818103600083015261427b8184614228565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006142b382614288565b9050919050565b6142c3816142a8565b81146142ce57600080fd5b50565b6000813590506142e0816142ba565b92915050565b6000819050919050565b6142f9816142e6565b811461430457600080fd5b50565b600081359050614316816142f0565b92915050565b6000806040838503121561433357614332614283565b5b6000614341858286016142d1565b925050602061435285828601614307565b9150509250929050565b60008115159050919050565b6143718161435c565b82525050565b600060208201905061438c6000830184614368565b92915050565b61439b816142e6565b82525050565b60006020820190506143b66000830184614392565b92915050565b6143c58161435c565b81146143d057600080fd5b50565b6000813590506143e2816143bc565b92915050565b600080604083850312156143ff576143fe614283565b5b600061440d858286016143d3565b925050602061441e858286016142d1565b9150509250929050565b60008060006060848603121561444157614440614283565b5b600061444f868287016142d1565b9350506020614460868287016142d1565b925050604061447186828701614307565b9150509250925092565b60006020828403121561449157614490614283565b5b600061449f848285016142d1565b91505092915050565b6000602082840312156144be576144bd614283565b5b60006144cc84828501614307565b91505092915050565b600060ff82169050919050565b6144eb816144d5565b82525050565b600060208201905061450660008301846144e2565b92915050565b6000806000806080858703121561452657614525614283565b5b600061453487828801614307565b945050602061454587828801614307565b935050604061455687828801614307565b925050606061456787828801614307565b91505092959194509250565b61457c816142a8565b82525050565b60006020820190506145976000830184614573565b92915050565b600080604083850312156145b4576145b3614283565b5b60006145c285828601614307565b92505060206145d385828601614307565b9150509250929050565b600080604083850312156145f4576145f3614283565b5b6000614602858286016142d1565b9250506020614613858286016142d1565b9150509250929050565b6000806040838503121561463457614633614283565b5b6000614642858286016143d3565b925050602061465385828601614307565b9150509250929050565b600080600080600080600080610100898b03121561467e5761467d614283565b5b600061468c8b828c016142d1565b985050602061469d8b828c016142d1565b97505060406146ae8b828c016142d1565b96505060606146bf8b828c016142d1565b95505060806146d08b828c016142d1565b94505060a06146e18b828c016142d1565b93505060c06146f28b828c016142d1565b92505060e06147038b828c016142d1565b9150509295985092959890939650565b600080600080600060a0868803121561472f5761472e614283565b5b600061473d88828901614307565b955050602061474e88828901614307565b945050604061475f88828901614307565b935050606061477088828901614307565b925050608061478188828901614307565b9150509295509295909350565b600061479982614288565b9050919050565b6147a98161478e565b81146147b457600080fd5b50565b6000813590506147c6816147a0565b92915050565b6000602082840312156147e2576147e1614283565b5b60006147f0848285016147b7565b91505092915050565b60006020828403121561480f5761480e614283565b5b600061481d848285016143d3565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156148ac5780860481111561488857614887614826565b5b60018516156148975780820291505b80810290506148a585614855565b945061486c565b94509492505050565b6000826148c55760019050614981565b816148d35760009050614981565b81600181146148e957600281146148f357614922565b6001915050614981565b60ff84111561490557614904614826565b5b8360020a91508482111561491c5761491b614826565b5b50614981565b5060208310610133831016604e8410600b84101617156149575782820a90508381111561495257614951614826565b5b614981565b6149648484846001614862565b9250905081840481111561497b5761497a614826565b5b81810290505b9392505050565b6000614993826142e6565b915061499e836144d5565b92506149cb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846148b5565b905092915050565b60006149de826142e6565b91506149e9836142e6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614a2257614a21614826565b5b828202905092915050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b6000614a63600b836141d3565b9150614a6e82614a2d565b602082019050919050565b60006020820190508181036000830152614a9281614a56565b9050919050565b600081519050614aa8816142f0565b92915050565b600060208284031215614ac457614ac3614283565b5b6000614ad284828501614a99565b91505092915050565b6000604082019050614af06000830185614573565b614afd6020830184614392565b9392505050565b600081519050614b13816143bc565b92915050565b600060208284031215614b2f57614b2e614283565b5b6000614b3d84828501614b04565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614b80826142e6565b9150614b8b836142e6565b925082614b9b57614b9a614b46565b5b828204905092915050565b7f4d617820545820616e64204d61782057616c6c65742063616e6e6f742062652060008201527f6c657373207468616e202e312500000000000000000000000000000000000000602082015250565b6000614c02602d836141d3565b9150614c0d82614ba6565b604082019050919050565b60006020820190508181036000830152614c3181614bf5565b9050919050565b7f5461782063616e6e6f74206265206d6f7265207468616e203130250000000000600082015250565b6000614c6e601b836141d3565b9150614c7982614c38565b602082019050919050565b60006020820190508181036000830152614c9d81614c61565b9050919050565b6000819050919050565b6000614cc9614cc4614cbf84614288565b614ca4565b614288565b9050919050565b6000614cdb82614cae565b9050919050565b6000614ced82614cd0565b9050919050565b614cfd81614ce2565b82525050565b6000602082019050614d186000830184614cf4565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614d7a6024836141d3565b9150614d8582614d1e565b604082019050919050565b60006020820190508181036000830152614da981614d6d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614e0c6022836141d3565b9150614e1782614db0565b604082019050919050565b60006020820190508181036000830152614e3b81614dff565b9050919050565b6000614e4d826142e6565b9150614e58836142e6565b925082821015614e6b57614e6a614826565b5b828203905092915050565b6000614e81826142e6565b9150614e8c836142e6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614ec157614ec0614826565b5b828201905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614f286025836141d3565b9150614f3382614ecc565b604082019050919050565b60006020820190508181036000830152614f5781614f1b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614fba6023836141d3565b9150614fc582614f5e565b604082019050919050565b60006020820190508181036000830152614fe981614fad565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061504c6029836141d3565b915061505782614ff0565b604082019050919050565b6000602082019050818103600083015261507b8161503f565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b60006150de6031836141d3565b91506150e982615082565b604082019050919050565b6000602082019050818103600083015261510d816150d1565b9050919050565b7f7374617274537761700000000000000000000000000000000000000000000000600082015250565b600061514a6009836141d3565b915061515582615114565b602082019050919050565b600060208201905081810360008301526151798161513d565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b60006151b6601e836141d3565b91506151c182615180565b602082019050919050565b600060208201905081810360008301526151e5816151a9565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006152226011836141d3565b915061522d826151ec565b602082019050919050565b6000602082019050818103600083015261525181615215565b9050919050565b600081905092915050565b50565b6000615273600083615258565b915061527e82615263565b600082019050919050565b600061529482615266565b9150819050919050565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b60006152d46010836141d3565b91506152df8261529e565b602082019050919050565b60006020820190508181036000830152615303816152c7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050615377816142ba565b92915050565b60006020828403121561539357615392614283565b5b60006153a184828501615368565b91505092915050565b6000819050919050565b60006153cf6153ca6153c5846153aa565b614ca4565b6142e6565b9050919050565b6153df816153b4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61541a816142a8565b82525050565b600061542c8383615411565b60208301905092915050565b6000602082019050919050565b6000615450826153e5565b61545a81856153f0565b935061546583615401565b8060005b8381101561549657815161547d8882615420565b975061548883615438565b925050600181019050615469565b5085935050505092915050565b600060a0820190506154b86000830188614392565b6154c560208301876153d6565b81810360408301526154d78186615445565b90506154e66060830185614573565b6154f36080830184614392565b9695505050505050565b600060c0820190506155126000830189614573565b61551f6020830188614392565b61552c60408301876153d6565b61553960608301866153d6565b6155466080830185614573565b61555360a0830184614392565b979650505050505050565b60008060006060848603121561557757615576614283565b5b600061558586828701614a99565b935050602061559686828701614a99565b92505060406155a786828701614a99565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200ba0de53de12db6a8b12a6c2719747c0d456943bf0ea6c6a758e104704ad2be064736f6c634300080e0033

Deployed Bytecode

0x6080604052600436106102295760003560e01c80639017ab2d11610123578063c79e12eb116100ab578063eab281bd1161006f578063eab281bd1461080c578063f0b37c0414610835578063f2fde38b1461085e578063fc5266c814610887578063fe9fbb80146108b057610230565b8063c79e12eb14610717578063d2d55dde14610740578063dd62ed3e1461077d578063df20fd49146107ba578063ea567040146107e357610230565b8063a9059cbb116100f2578063a9059cbb14610622578063aff75ce11461065f578063b2118a8d14610688578063b6a5d7de146106b1578063c5a11b7b146106da57610230565b80639017ab2d1461057a57806391e0f7e9146105a357806395d89b41146105cc578063a8aa1b31146105f757610230565b806334b489bf116101b1578063749796a511610175578063749796a5146104b95780637598122d146104e257806378109e54146104f95780637d1db4a5146105245780638da5cb5b1461054f57610230565b806334b489bf146103ea5780635def85e4146104135780636ca105491461043c57806370a0823114610465578063715018a6146104a257610230565b806323b872dd116101f857806323b872dd146102f15780632b112e491461032e5780632f54bf6e146103595780633052ea0814610396578063313ce567146103bf57610230565b806306fdde0314610235578063095ea7b31461026057806318160ddd1461029d5780631d501240146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108ed565b6040516102579190614261565b60405180910390f35b34801561026c57600080fd5b506102876004803603810190610282919061431c565b61092a565b6040516102949190614377565b60405180910390f35b3480156102a957600080fd5b506102b2610941565b6040516102bf91906143a1565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea91906143e8565b610965565b005b3480156102fd57600080fd5b5061031860048036038101906103139190614428565b610a08565b6040516103259190614377565b60405180910390f35b34801561033a57600080fd5b50610343610ad3565b60405161035091906143a1565b60405180910390f35b34801561036557600080fd5b50610380600480360381019061037b919061447b565b610b2e565b60405161038d9190614377565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b891906144a8565b610b87565b005b3480156103cb57600080fd5b506103d4610c66565b6040516103e191906144f1565b60405180910390f35b3480156103f657600080fd5b50610411600480360381019061040c91906144a8565b610c6f565b005b34801561041f57600080fd5b5061043a600480360381019061043591906143e8565b610d09565b005b34801561044857600080fd5b50610463600480360381019061045e919061450c565b610dac565b005b34801561047157600080fd5b5061048c6004803603810190610487919061447b565b610e16565b60405161049991906143a1565b60405180910390f35b3480156104ae57600080fd5b506104b7610e5f565b005b3480156104c557600080fd5b506104e060048036038101906104db919061447b565b610f22565b005b3480156104ee57600080fd5b506104f7610fc5565b005b34801561050557600080fd5b5061050e611017565b60405161051b91906143a1565b60405180910390f35b34801561053057600080fd5b5061053961101d565b60405161054691906143a1565b60405180910390f35b34801561055b57600080fd5b50610564611023565b6040516105719190614582565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c919061447b565b611047565b005b3480156105af57600080fd5b506105ca60048036038101906105c591906143e8565b6110d3565b005b3480156105d857600080fd5b506105e1611225565b6040516105ee9190614261565b60405180910390f35b34801561060357600080fd5b5061060c611262565b6040516106199190614582565b60405180910390f35b34801561062e57600080fd5b506106496004803603810190610644919061431c565b611288565b6040516106569190614377565b60405180910390f35b34801561066b57600080fd5b506106866004803603810190610681919061459d565b61129f565b005b34801561069457600080fd5b506106af60048036038101906106aa9190614428565b6112f5565b005b3480156106bd57600080fd5b506106d860048036038101906106d3919061447b565b611465565b005b3480156106e657600080fd5b5061070160048036038101906106fc919061447b565b611507565b60405161070e9190614377565b60405180910390f35b34801561072357600080fd5b5061073e6004803603810190610739919061459d565b61155d565b005b34801561074c57600080fd5b50610767600480360381019061076291906145dd565b611700565b60405161077491906143a1565b60405180910390f35b34801561078957600080fd5b506107a4600480360381019061079f91906145dd565b611914565b6040516107b191906143a1565b60405180910390f35b3480156107c657600080fd5b506107e160048036038101906107dc919061461d565b61199b565b005b3480156107ef57600080fd5b5061080a6004803603810190610805919061465d565b611a08565b005b34801561081857600080fd5b50610833600480360381019061082e9190614713565b611d12565b005b34801561084157600080fd5b5061085c6004803603810190610857919061447b565b611e23565b005b34801561086a57600080fd5b50610885600480360381019061088091906147cc565b611ec6565b005b34801561089357600080fd5b506108ae60048036038101906108a991906147f9565b611fdf565b005b3480156108bc57600080fd5b506108d760048036038101906108d2919061447b565b612044565b6040516108e49190614377565b60405180910390f35b60606040518060400160405280600881526020017f44656669476f6c64000000000000000000000000000000000000000000000000815250905090565b600061093733848461209a565b6001905092915050565b60006012600a6109519190614988565b6317d7840061096091906149d3565b905090565b61096e33612044565b6109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a490614a79565b60405180910390fd5b81600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610a15848484612263565b610ac88433610ac3856040518060600160405280602881526020016155b260289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124709092919063ffffffff16565b61209a565b600190509392505050565b6000610b29610ae26000610e16565b610b1b610af061dead610e16565b6012600a610afe9190614988565b6317d78400610b0d91906149d3565b6124c590919063ffffffff16565b6124c590919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b610b9033612044565b610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc690614a79565b60405180910390fd5b6000479050602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc610c366064610c2886866124db90919063ffffffff16565b6124f190919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015610c61573d6000803e3d6000fd5b505050565b60006012905090565b610c7833612044565b610cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cae90614a79565b60405180910390fd5b6001600c60146101000a81548160ff0219169083151502179055506001601660016101000a81548160ff021916908315150217905550610d00814261250790919063ffffffff16565b600d8190555050565b610d1233612044565b610d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4890614a79565b60405180910390fd5b81600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610db533612044565b610df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610deb90614a79565b60405180910390fd5b83601b8190555082601c8190555081601a819055508060198190555050505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e6833612044565b610ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9e90614a79565b60405180910390fd5b7f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610ed79190614582565b60405180910390a160008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f2b33612044565b610f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6190614a79565b60405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610fce33612044565b61100d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100490614a79565b60405180910390fd5b61101561251d565b565b60035481565b60025481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61105033612044565b61108f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108690614a79565b60405180910390fd5b80601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6110dc33612044565b61111b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111290614a79565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60606040518060400160405280600581526020017f44474f4c44000000000000000000000000000000000000000000000000000000815250905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611295338484612263565b6001905092915050565b6112a833612044565b6112e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112de90614a79565b60405180910390fd5b6112f18282612683565b5050565b6112fe33612044565b61133d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133490614a79565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113789190614582565b602060405180830381865afa158015611395573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b99190614aae565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb846113fe60646113f087876124db90919063ffffffff16565b6124f190919063ffffffff16565b6040518363ffffffff1660e01b815260040161141b929190614adb565b6020604051808303816000875af115801561143a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145e9190614b19565b5050505050565b61146e33612044565b6114ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a490614a79565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61156633612044565b6115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c90614a79565b60405180910390fd5b6000612710836012600a6115b99190614988565b6317d784006115c891906149d3565b6115d291906149d3565b6115dc9190614b75565b90506000612710836012600a6115f29190614988565b6317d7840061160191906149d3565b61160b91906149d3565b6116159190614b75565b905081600281905550806003819055506116696103e861165b60016012600a61163e9190614988565b6317d7840061164d91906149d3565b6124db90919063ffffffff16565b6124f190919063ffffffff16565b82101580156116bb57506116b76103e86116a960016012600a61168c9190614988565b6317d7840061169b91906149d3565b6124db90919063ffffffff16565b6124f190919063ffffffff16565b8110155b6116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f190614c18565b60405180910390fd5b50505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611799575042600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b80156117b15750601660019054906101000a900460ff165b806118675750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561184e575042600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b80156118665750601660019054906101000a900460ff165b5b80611873575042600d54115b156118955761188e60646127106124c590919063ffffffff16565b905061190e565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119085761190160135460125461250790919063ffffffff16565b905061190e565b60125490505b92915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119a433612044565b6119e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119da90614a79565b60405180910390fd5b81601460006101000a81548160ff021916908315150217905550806017819055505050565b611a1133612044565b611a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4790614a79565b60405180910390fd5b87602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555086602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555085602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050565b611d1b33612044565b611d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5190614a79565b60405180910390fd5b84600e8190555083600f81905550826010819055508160118190555080601381905550611dbc601154611dae601054611da0600f54600e5461250790919063ffffffff16565b61250790919063ffffffff16565b61250790919063ffffffff16565b601281905550611dd8600a6127106124f190919063ffffffff16565b6012541115611e1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1390614c84565b60405180910390fd5b5050505050565b611e2c33612044565b611e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6290614a79565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611ecf33612044565b611f0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0590614a79565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611fd49190614d03565b60405180910390a150565b611fe833612044565b612027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201e90614a79565b60405180910390fd5b80601660016101000a81548160ff02191690831515021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210090614d90565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216f90614e22565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161225691906143a1565b60405180910390a3505050565b61226e83838361290b565b6122788383612a7c565b612283838383612b79565b61228d8383612d4e565b612298838383612f1f565b6122a3838383613011565b6122f581600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c590919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612344848461303a565b61234e578161235a565b6123598484846130e8565b5b90506123ae81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461250790919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161244e91906143a1565b60405180910390a3612460838361355c565b61246a8484613686565b50505050565b60008383111582906124b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124af9190614261565b60405180910390fd5b5082840390509392505050565b600081836124d39190614e42565b905092915050565b600081836124e991906149d3565b905092915050565b600081836124ff9190614b75565b905092915050565b600081836125159190614e76565b905092915050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161257a9190614582565b602060405180830381865afa158015612597573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125bb9190614aae565b9050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161263c929190614adb565b6020604051808303816000875af115801561265b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061267f9190614b19565b5050565b600047905060006126af836126a186856124db90919063ffffffff16565b6124f190919063ffffffff16565b905060006126da60646126cc6019856124db90919063ffffffff16565b6124f190919063ffffffff16565b9050600061270560646126f76019866124db90919063ffffffff16565b6124f190919063ffffffff16565b9050600061273060646127226019876124db90919063ffffffff16565b6124f190919063ffffffff16565b9050600061275b606461274d6019886124db90919063ffffffff16565b6124f190919063ffffffff16565b9050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f193505050501580156127c5573d6000803e3d6000fd5b50602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015801561282e573d6000803e3d6000fd5b50602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612897573d6000803e3d6000fd5b50602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612900573d6000803e3d6000fd5b505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361297a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297190614f3e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e090614fd0565b60405180910390fd5b60008111612a2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2390615062565b60405180910390fd5b612a3583610e16565b811115612a77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6e906150f4565b60405180910390fd5b505050565b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b205750600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b7557600c60149054906101000a900460ff16612b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6b90615160565b60405180910390fd5b5b5050565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c1d5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612c735750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612cad575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612d4957600354612d0782600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461250790919063ffffffff16565b1115612d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3f906151cc565b60405180910390fd5b5b505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612df65750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612e4c5750600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e6e57612e67600160155461250790919063ffffffff16565b6015819055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f1b57612ed760024261250790919063ffffffff16565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b60025481111580612f795750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612fcd5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61300c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300390615238565b60405180910390fd5b505050565b61301c8383836138e7565b156130355761302c601754613a05565b60006015819055505b505050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156130e05750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b60006130f48484613d5f565b156135515760006131058585611700565b9050600061313961271061312b61311c8989611700565b876124db90919063ffffffff16565b6124f190919063ffffffff16565b9050600061316483613156601154856124db90919063ffffffff16565b6124f190919063ffffffff16565b9050600061318f84613181601054866124db90919063ffffffff16565b6124f190919063ffffffff16565b905060006131b8826131aa85876124c590919063ffffffff16565b6124c590919063ffffffff16565b905060008311156132c457613217836004600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461250790919063ffffffff16565b6004600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061dead73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516132bb91906143a1565b60405180910390a35b600082111561342e576133418260046000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461250790919063ffffffff16565b60046000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161342591906143a1565b60405180910390a35b60008111156135325761348981600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461250790919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161352991906143a1565b60405180910390a35b61354584886124c590919063ffffffff16565b95505050505050613555565b8190505b9392505050565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156135cd57506012600a6135be9190614988565b60026135ca91906149d3565b81105b156135de576135dd600180612683565b5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561365057506012600a6136409190614988565b600261364c91906149d3565b8110155b801561367457506012600a6136659190614988565b600361367191906149d3565b81105b156136825761368161251d565b5b5050565b601660019054906101000a900460ff1680156136ce57503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156137795750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615806137785750600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b80156137cf5750600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b806137db575042600d54115b156138e3576001600760003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166138e2576001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5050565b6000806018548310159050600060175461390030610e16565b10159050601660009054906101000a900460ff1615801561392d5750601460009054906101000a900460ff165b80156139365750815b801561398c5750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156139e25750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156139f15750600760155410155b80156139fa5750805b925050509392505050565b6001601660006101000a81548160ff02191690831515021790555060006002613a63601b54613a55601954613a47601c54601a5461250790919063ffffffff16565b61250790919063ffffffff16565b61250790919063ffffffff16565b613a6d91906149d3565b90506000613a9882613a8a601a54866124db90919063ffffffff16565b6124f190919063ffffffff16565b90506000613aaf82856124c590919063ffffffff16565b90506000479050613abf82613e85565b6000613ad482476124c590919063ffffffff16565b90506000613aff613af0601a54886124c590919063ffffffff16565b836124f190919063ffffffff16565b90506000613b18601a54836124db90919063ffffffff16565b90506000811115613b2e57613b2d86826140c8565b5b6000613b58601954613b4a6002866124db90919063ffffffff16565b6124db90919063ffffffff16565b90506000811115613c33576000602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051613bab90615289565b60006040518083038185875af1925050503d8060008114613be8576040519150601f19603f3d011682016040523d82523d6000602084013e613bed565b606091505b5050905080613c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c28906152ea565b60405180910390fd5b505b6000613c5d601c54613c4f6002876124db90919063ffffffff16565b6124db90919063ffffffff16565b90506000811115613d38576000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051613cb090615289565b60006040518083038185875af1925050503d8060008114613ced576040519150601f19603f3d011682016040523d82523d6000602084013e613cf2565b606091505b5050905080613d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d2d906152ea565b60405180910390fd5b505b5050505050505050506000601660006101000a81548160ff02191690831515021790555050565b600080601254118015613d7f5750601660009054906101000a900460ff16155b80613e1d5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613e1c575042600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b5b80613e715750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80613e7d575042600d54115b905092915050565b6000600267ffffffffffffffff811115613ea257613ea161530a565b5b604051908082528060200260200182016040528015613ed05781602001602082028036833780820191505090505b5090503081600081518110613ee857613ee7615339565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fb3919061537d565b81600181518110613fc757613fc6615339565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061402e30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461209a565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016140929594939291906154a3565b600060405180830381600087803b1580156140ac57600080fd5b505af11580156140c0573d6000803e3d6000fd5b505050505050565b6140f530600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461209a565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161417e969594939291906154fd565b60606040518083038185885af115801561419c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906141c1919061555e565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156142025780820151818401526020810190506141e7565b83811115614211576000848401525b50505050565b6000601f19601f8301169050919050565b6000614233826141c8565b61423d81856141d3565b935061424d8185602086016141e4565b61425681614217565b840191505092915050565b6000602082019050818103600083015261427b8184614228565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006142b382614288565b9050919050565b6142c3816142a8565b81146142ce57600080fd5b50565b6000813590506142e0816142ba565b92915050565b6000819050919050565b6142f9816142e6565b811461430457600080fd5b50565b600081359050614316816142f0565b92915050565b6000806040838503121561433357614332614283565b5b6000614341858286016142d1565b925050602061435285828601614307565b9150509250929050565b60008115159050919050565b6143718161435c565b82525050565b600060208201905061438c6000830184614368565b92915050565b61439b816142e6565b82525050565b60006020820190506143b66000830184614392565b92915050565b6143c58161435c565b81146143d057600080fd5b50565b6000813590506143e2816143bc565b92915050565b600080604083850312156143ff576143fe614283565b5b600061440d858286016143d3565b925050602061441e858286016142d1565b9150509250929050565b60008060006060848603121561444157614440614283565b5b600061444f868287016142d1565b9350506020614460868287016142d1565b925050604061447186828701614307565b9150509250925092565b60006020828403121561449157614490614283565b5b600061449f848285016142d1565b91505092915050565b6000602082840312156144be576144bd614283565b5b60006144cc84828501614307565b91505092915050565b600060ff82169050919050565b6144eb816144d5565b82525050565b600060208201905061450660008301846144e2565b92915050565b6000806000806080858703121561452657614525614283565b5b600061453487828801614307565b945050602061454587828801614307565b935050604061455687828801614307565b925050606061456787828801614307565b91505092959194509250565b61457c816142a8565b82525050565b60006020820190506145976000830184614573565b92915050565b600080604083850312156145b4576145b3614283565b5b60006145c285828601614307565b92505060206145d385828601614307565b9150509250929050565b600080604083850312156145f4576145f3614283565b5b6000614602858286016142d1565b9250506020614613858286016142d1565b9150509250929050565b6000806040838503121561463457614633614283565b5b6000614642858286016143d3565b925050602061465385828601614307565b9150509250929050565b600080600080600080600080610100898b03121561467e5761467d614283565b5b600061468c8b828c016142d1565b985050602061469d8b828c016142d1565b97505060406146ae8b828c016142d1565b96505060606146bf8b828c016142d1565b95505060806146d08b828c016142d1565b94505060a06146e18b828c016142d1565b93505060c06146f28b828c016142d1565b92505060e06147038b828c016142d1565b9150509295985092959890939650565b600080600080600060a0868803121561472f5761472e614283565b5b600061473d88828901614307565b955050602061474e88828901614307565b945050604061475f88828901614307565b935050606061477088828901614307565b925050608061478188828901614307565b9150509295509295909350565b600061479982614288565b9050919050565b6147a98161478e565b81146147b457600080fd5b50565b6000813590506147c6816147a0565b92915050565b6000602082840312156147e2576147e1614283565b5b60006147f0848285016147b7565b91505092915050565b60006020828403121561480f5761480e614283565b5b600061481d848285016143d3565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156148ac5780860481111561488857614887614826565b5b60018516156148975780820291505b80810290506148a585614855565b945061486c565b94509492505050565b6000826148c55760019050614981565b816148d35760009050614981565b81600181146148e957600281146148f357614922565b6001915050614981565b60ff84111561490557614904614826565b5b8360020a91508482111561491c5761491b614826565b5b50614981565b5060208310610133831016604e8410600b84101617156149575782820a90508381111561495257614951614826565b5b614981565b6149648484846001614862565b9250905081840481111561497b5761497a614826565b5b81810290505b9392505050565b6000614993826142e6565b915061499e836144d5565b92506149cb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846148b5565b905092915050565b60006149de826142e6565b91506149e9836142e6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614a2257614a21614826565b5b828202905092915050565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b6000614a63600b836141d3565b9150614a6e82614a2d565b602082019050919050565b60006020820190508181036000830152614a9281614a56565b9050919050565b600081519050614aa8816142f0565b92915050565b600060208284031215614ac457614ac3614283565b5b6000614ad284828501614a99565b91505092915050565b6000604082019050614af06000830185614573565b614afd6020830184614392565b9392505050565b600081519050614b13816143bc565b92915050565b600060208284031215614b2f57614b2e614283565b5b6000614b3d84828501614b04565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614b80826142e6565b9150614b8b836142e6565b925082614b9b57614b9a614b46565b5b828204905092915050565b7f4d617820545820616e64204d61782057616c6c65742063616e6e6f742062652060008201527f6c657373207468616e202e312500000000000000000000000000000000000000602082015250565b6000614c02602d836141d3565b9150614c0d82614ba6565b604082019050919050565b60006020820190508181036000830152614c3181614bf5565b9050919050565b7f5461782063616e6e6f74206265206d6f7265207468616e203130250000000000600082015250565b6000614c6e601b836141d3565b9150614c7982614c38565b602082019050919050565b60006020820190508181036000830152614c9d81614c61565b9050919050565b6000819050919050565b6000614cc9614cc4614cbf84614288565b614ca4565b614288565b9050919050565b6000614cdb82614cae565b9050919050565b6000614ced82614cd0565b9050919050565b614cfd81614ce2565b82525050565b6000602082019050614d186000830184614cf4565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614d7a6024836141d3565b9150614d8582614d1e565b604082019050919050565b60006020820190508181036000830152614da981614d6d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614e0c6022836141d3565b9150614e1782614db0565b604082019050919050565b60006020820190508181036000830152614e3b81614dff565b9050919050565b6000614e4d826142e6565b9150614e58836142e6565b925082821015614e6b57614e6a614826565b5b828203905092915050565b6000614e81826142e6565b9150614e8c836142e6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614ec157614ec0614826565b5b828201905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614f286025836141d3565b9150614f3382614ecc565b604082019050919050565b60006020820190508181036000830152614f5781614f1b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614fba6023836141d3565b9150614fc582614f5e565b604082019050919050565b60006020820190508181036000830152614fe981614fad565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061504c6029836141d3565b915061505782614ff0565b604082019050919050565b6000602082019050818103600083015261507b8161503f565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b60006150de6031836141d3565b91506150e982615082565b604082019050919050565b6000602082019050818103600083015261510d816150d1565b9050919050565b7f7374617274537761700000000000000000000000000000000000000000000000600082015250565b600061514a6009836141d3565b915061515582615114565b602082019050919050565b600060208201905081810360008301526151798161513d565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b60006151b6601e836141d3565b91506151c182615180565b602082019050919050565b600060208201905081810360008301526151e5816151a9565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006152226011836141d3565b915061522d826151ec565b602082019050919050565b6000602082019050818103600083015261525181615215565b9050919050565b600081905092915050565b50565b6000615273600083615258565b915061527e82615263565b600082019050919050565b600061529482615266565b9150819050919050565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b60006152d46010836141d3565b91506152df8261529e565b602082019050919050565b60006020820190508181036000830152615303816152c7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050615377816142ba565b92915050565b60006020828403121561539357615392614283565b5b60006153a184828501615368565b91505092915050565b6000819050919050565b60006153cf6153ca6153c5846153aa565b614ca4565b6142e6565b9050919050565b6153df816153b4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61541a816142a8565b82525050565b600061542c8383615411565b60208301905092915050565b6000602082019050919050565b6000615450826153e5565b61545a81856153f0565b935061546583615401565b8060005b8381101561549657815161547d8882615420565b975061548883615438565b925050600181019050615469565b5085935050505092915050565b600060a0820190506154b86000830188614392565b6154c560208301876153d6565b81810360408301526154d78186615445565b90506154e66060830185614573565b6154f36080830184614392565b9695505050505050565b600060c0820190506155126000830189614573565b61551f6020830188614392565b61552c60408301876153d6565b61553960608301866153d6565b6155466080830185614573565b61555360a0830184614392565b979650505050505050565b60008060006060848603121561557757615576614283565b5b600061558586828701614a99565b935050602061559686828701614a99565b92505060406155a786828701614a99565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200ba0de53de12db6a8b12a6c2719747c0d456943bf0ea6c6a758e104704ad2be064736f6c634300080e0033

Deployed Bytecode Sourcemap

6511:16364:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9549:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10478:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9772:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10855:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11688:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10617:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4910:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16806:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9699:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11405:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10955:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18357:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9862:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5286:128;;;;;;;;;;;;;:::i;:::-;;10757:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11137:61;;;;;;;;;;;;;:::i;:::-;;6943:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6876:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4387:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11304:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18143:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9622:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7373:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9971:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11204:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17915:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4737:79;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10249:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17307:438;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15857:401;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10116:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11545:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19681:539;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19239:434;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4822:82;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5106:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11065:66;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5003:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9549:67;9586:13;9609:5;;;;;;;;;;;;;;;;;9602:12;;9549:67;:::o;10478:133::-;10553:4;10560:37;10569:10;10581:7;10590:6;10560:8;:37::i;:::-;10605:4;10598:11;;10478:133;;;;:::o;9772:84::-;9825:7;6717:2;6780;:15;;;;:::i;:::-;6766:10;:30;;;;:::i;:::-;9835:19;;9772:84;:::o;10855:94::-;4686:24;4699:10;4686:12;:24::i;:::-;4678:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10942:5:::1;10924;:15;10930:8;10924:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10855:94:::0;;:::o;11688:309::-;11786:4;11803:36;11813:6;11821:9;11832:6;11803:9;:36::i;:::-;11850:117;11859:6;11867:10;11879:87;11915:6;11879:87;;;;;;;;;;;;;;;;;:11;:19;11891:6;11879:19;;;;;;;;;;;;;;;:31;11899:10;11879:31;;;;;;;;;;;;;;;;:35;;:87;;;;;:::i;:::-;11850:8;:117::i;:::-;11985:4;11978:11;;11688:309;;;;;:::o;10617:132::-;10670:7;10687:60;10725:21;10743:1;10725:9;:21::i;:::-;10687:33;10704:15;6827:42;10704:9;:15::i;:::-;6717:2;6780;:15;;;;:::i;:::-;6766:10;:30;;;;:::i;:::-;10687:16;;:33;;;;:::i;:::-;:37;;:60;;;;:::i;:::-;10680:67;;10617:132;:::o;4910:87::-;4965:4;4990:5;;;;;;;;;;;4979:16;;:7;:16;;;4972:23;;4910:87;;;:::o;16806:199::-;4686:24;4699:10;4686:12;:24::i;:::-;4678:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16875:17:::1;16895:21;16875:41;;16935:16;;;;;;;;;;;16927:34;;:70;16962:34;16992:3;16962:25;16976:10;16962:9;:13;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;16927:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16864:141;16806:199:::0;:::o;9699:67::-;9740:5;6717:2;9748:16;;9699:67;:::o;11405:134::-;4686:24;4699:10;4686:12;:24::i;:::-;4678:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11476:4:::1;11464:9;;:16;;;;;;;;;;;;;;;;;;11490:4;11482:5;;:12;;;;;;;;;;;;;;;;;;11510:27;11530:6;11510:15;:19;;:27;;;;:::i;:::-;11496:11;:41;;;;11405:134:::0;:::o;10955:104::-;4686:24;4699:10;4686:12;:24::i;:::-;4678:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11052:5:::1;11029:10;:20;11040:8;11029:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;10955:104:::0;;:::o;18357:290::-;4686:24;4699:10;4686:12;:24::i;:::-;4678:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;18510:12:::1;18488:19;:34;;;;18550:7;18533:14;:24;;;;18588:10;18568:17;:30;;;;18629:10;18609:17;:30;;;;18357:290:::0;;;;:::o;9862:103::-;9928:7;9945:9;:18;9955:7;9945:18;;;;;;;;;;;;;;;;9938:25;;9862:103;;;:::o;5286:128::-;4686:24;4699:10;4686:12;:24::i;:::-;4678:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;5351:32:::1;5380:1;5351:32;;;;;;:::i;:::-;;;;;;;;5410:1;5394:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;5286:128::o:0;10757:92::-;4686:24;4699:10;4686:12;:24::i;:::-;4678:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10843:4:::1;10819:11;:21;10831:8;10819:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;10757:92:::0;:::o;11137:61::-;4686:24;4699:10;4686:12;:24::i;:::-;4678:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11186:10:::1;:8;:10::i;:::-;11137:61::o:0;6943:63::-;;;;:::o;6876:60::-;;;;:::o;4387:20::-;;;;;;;;;;;;:::o;11304:95::-;4686:24;4699:10;4686:12;:24::i;:::-;4678:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11389:8:::1;11368:18;;:29;;;;;;;;;;;;;;;;;;11304:95:::0;:::o;18143:206::-;4686:24;4699:10;4686:12;:24::i;:::-;4678:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;18251:5:::1;18233;:15;18239:8;18233:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;18290:8;18267:10;:20;18278:8;18267:20;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;18333:8;18309:11;:21;18321:8;18309:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;18143:206:::0;;:::o;9622:71::-;9661:13;9684:7;;;;;;;;;;;;;;;;;9677:14;;9622:71;:::o;7373:19::-;;;;;;;;;;;;;:::o;9971:139::-;10049:4;10056:40;10066:10;10078:9;10089:6;10056:9;:40::i;:::-;10104:4;10097:11;;9971:139;;;;:::o;11204:94::-;4686:24;4699:10;4686:12;:24::i;:::-;4678:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11270:26:::1;11287:3;11292;11270:16;:26::i;:::-;11204:94:::0;;:::o;17915:220::-;4686:24;4699:10;4686:12;:24::i;:::-;4678:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;18010:12:::1;18032:5;18025:23;;;18057:4;18025:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18010:53;;18081:5;18074:22;;;18097:4;18103:23;18122:3;18103:14;18112:4;18103;:8;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;18074:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17999:136;17915:220:::0;;;:::o;4737:79::-;4686:24;4699:10;4686:12;:24::i;:::-;4678:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;4810:4:::1;4788:14:::0;:19:::1;4803:3;4788:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4737:79:::0;:::o;10249:89::-;10307:4;10321:5;:15;10327:8;10321:15;;;;;;;;;;;;;;;;;;;;;;;;;10314:22;;10249:89;;;:::o;17307:438::-;4686:24;4699:10;4686:12;:24::i;:::-;4678:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;17395:13:::1;17445:5;17428:12;6717:2;6780;:15;;;;:::i;:::-;6766:10;:30;;;;:::i;:::-;17413:27;;;;:::i;:::-;17411:39;;;;:::i;:::-;17395:55;;17461:17;17510:5;17498:7;6717:2;6780;:15;;;;:::i;:::-;6766:10;:30;;;;:::i;:::-;17483:22;;;;:::i;:::-;17481:34;;;;:::i;:::-;17461:54;;17541:5;17526:12;:20;;;;17575:9;17557:15;:27;;;;17612:29;17636:4;17612:19;17629:1;6717:2;6780;:15;;;;:::i;:::-;6766:10;:30;;;;:::i;:::-;17612:16;;:19;;;;:::i;:::-;:23;;:29;;;;:::i;:::-;17603:5;:38;;:84;;;;;17658:29;17682:4;17658:19;17675:1;6717:2;6780;:15;;;;:::i;:::-;6766:10;:30;;;;:::i;:::-;17658:16;;:19;;;;:::i;:::-;:23;;:29;;;;:::i;:::-;17645:9;:42;;17603:84;17595:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;17384:361;;17307:438:::0;;:::o;15857:401::-;15934:7;15957:5;:13;15963:6;15957:13;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;15993:15;15974:8;:16;15983:6;15974:16;;;;;;;;;;;;;;;;:34;15957:51;:60;;;;;16012:5;;;;;;;;;;;15957:60;:137;;;;16021:5;:16;16027:9;16021:16;;;;;;;;;;;;;;;;;;;;;;;;;:64;;;;;16070:15;16051:8;:16;16060:6;16051:16;;;;;;;;;;;;;;;;:34;16021:64;:73;;;;;16089:5;;;;;;;;;;;16021:73;15957:137;:170;;;;16112:15;16098:11;;:29;15957:170;15954:208;;;16136:23;16155:3;7669:5;16136:18;;:23;;;;:::i;:::-;16129:31;;;;15954:208;16185:4;;;;;;;;;;;16175:14;;:6;:14;;;16172:53;;16198:25;16211:11;;16198:8;;:12;;:25;;;;:::i;:::-;16191:32;;;;16172:53;16242:8;;16235:15;;15857:401;;;;;:::o;10116:127::-;10197:7;10214:11;:18;10226:5;10214:18;;;;;;;;;;;;;;;:27;10233:7;10214:27;;;;;;;;;;;;;;;;10207:34;;10116:127;;;;:::o;11545:135::-;4686:24;4699:10;4686:12;:24::i;:::-;4678:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11643:7:::1;11629:11;;:21;;;;;;;;;;;;;;;;;;11668:10;11652:13;:26;;;;11545:135:::0;;:::o;19681:539::-;4686:24;4699:10;4686:12;:24::i;:::-;4678:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;19896:10:::1;19875:18;;:31;;;;;;;;;;;;;;;;;;19936:4;19908:13;:25;19922:10;19908:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;19968:6;19951:14;;:23;;;;;;;;;;;;;;;;;;20000:4;19976:13;:21;19990:6;19976:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;20032:6;20015:14;;:23;;;;;;;;;;;;;;;;;;20066:6;20049:14;;:23;;;;;;;;;;;;;;;;;;20100:6;20083:14;;:23;;;;;;;;;;;;;;;;;;20135:5;20117:15;;:23;;;;;;;;;;;;;;;;;;20168:6;20151:14;;:23;;;;;;;;;;;;;;;;;;20204:8;20185:16;;:27;;;;;;;;;;;;;;;;;;19681:539:::0;;;;;;;;:::o;19239:434::-;4686:24;4699:10;4686:12;:24::i;:::-;4678:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;19381:4:::1;19366:12;:19;;;;19411:5;19396:12;:20;;;;19439:5;19427:9;:17;;;;19465:5;19455:7;:15;;;;19495:5;19481:11;:19;;;;19522:58;19572:7;;19522:45;19557:9;;19522:30;19539:12;;19522;;:16;;:30;;;;:::i;:::-;:34;;:45;;;;:::i;:::-;:49;;:58;;;;:::i;:::-;19511:8;:69;;;;19611:22;19630:2;7669:5;19611:18;;:22;;;;:::i;:::-;19599:8;;:34;;19591:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;19239:434:::0;;;;;:::o;4822:82::-;4686:24;4699:10;4686:12;:24::i;:::-;4678:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;4897:5:::1;4875:14;:19;4890:3;4875:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;4822:82:::0;:::o;5106:168::-;4686:24;4699:10;4686:12;:24::i;:::-;4678:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;5191:3:::1;5183:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;5227:4;5205:14:::0;:19:::1;5220:3;5205:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;5247:25;5268:3;5247:25;;;;;;:::i;:::-;;;;;;;;5106:168:::0;:::o;11065:66::-;4686:24;4699:10;4686:12;:24::i;:::-;4678:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11124:5:::1;11116;;:13;;;;;;;;;;;;;;;;;;11065:66:::0;:::o;5003:91::-;5059:4;5073:14;:19;5088:3;5073:19;;;;;;;;;;;;;;;;;;;;;;;;;5066:26;;5003:91;;;:::o;12005:335::-;12115:1;12098:19;;:5;:19;;;12090:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12196:1;12177:21;;:7;:21;;;12169:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12278:6;12248:11;:18;12260:5;12248:18;;;;;;;;;;;;;;;:27;12267:7;12248:27;;;;;;;;;;;;;;;:36;;;;12316:7;12300:32;;12309:5;12300:32;;;12325:6;12300:32;;;;;;:::i;:::-;;;;;;;;12005:335;;;:::o;12348:768::-;12437:37;12448:6;12456:9;12467:6;12437:10;:37::i;:::-;12485:33;12500:6;12508:9;12485:14;:33::i;:::-;12529:41;12544:6;12552:9;12563:6;12529:14;:41::i;:::-;12582:35;12599:6;12607:9;12582:16;:35::i;:::-;12628:39;12641:6;12649:9;12660:6;12628:12;:39::i;:::-;12679:35;12688:6;12696:9;12707:6;12679:8;:35::i;:::-;12745:29;12767:6;12745:9;:17;12755:6;12745:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;12725:9;:17;12735:6;12725:17;;;;;;;;;;;;;;;:49;;;;12785:22;12810:32;12824:6;12832:9;12810:13;:32::i;:::-;:83;;12887:6;12810:83;;;12845:39;12858:6;12866:9;12877:6;12845:12;:39::i;:::-;12810:83;12785:108;;12927:40;12952:14;12927:9;:20;12937:9;12927:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;12904:9;:20;12914:9;12904:20;;;;;;;;;;;;;;;:63;;;;13000:9;12983:43;;12992:6;12983:43;;;13011:14;12983:43;;;;;;:::i;:::-;;;;;;;;13037:33;13052:9;13063:6;13037:14;:33::i;:::-;13081:27;13090:6;13098:9;13081:8;:27::i;:::-;12426:690;12348:768;;;:::o;2996:162::-;3082:7;3125:1;3120;:6;;3128:12;3112:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3154:1;3150;:5;3143:12;;2996:162;;;;;:::o;1783:82::-;1841:7;1862:1;1858;:5;;;;:::i;:::-;1851:12;;1783:82;;;;:::o;1871:::-;1929:7;1950:1;1946;:5;;;;:::i;:::-;1939:12;;1871:82;;;;:::o;1959:::-;2017:7;2038:1;2034;:5;;;;:::i;:::-;2027:12;;1959:82;;;;:::o;1695:::-;1753:7;1774:1;1770;:5;;;;:::i;:::-;1763:12;;1695:82;;;;:::o;17753:154::-;17793:12;17815:4;;;;;;;;;;;17808:22;;;17839:4;17808:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17793:52;;17863:4;;;;;;;;;;;17856:21;;;17878:14;;;;;;;;;;;17894:4;17856:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17782:125;17753:154::o;18655:576::-;18727:13;18743:21;18727:37;;18775:14;18792:23;18811:3;18792:14;18802:3;18792:5;:9;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;18775:40;;18826:14;18843:23;18862:3;18843:14;18854:2;18843:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;18826:40;;18877:14;18894:23;18913:3;18894:14;18905:2;18894:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;18877:40;;18928:14;18945:23;18964:3;18945:14;18956:2;18945:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;18928:40;;18979:14;18996:23;19015:3;18996:14;19007:2;18996:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;18979:40;;19038:14;;;;;;;;;;;19030:32;;:40;19063:6;19030:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19089:14;;;;;;;;;;;19081:32;;:40;19114:6;19081:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19140:14;;;;;;;;;;;19132:32;;:40;19165:6;19132:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19191:14;;;;;;;;;;;19183:32;;:40;19216:6;19183:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18716:515;;;;;;18655:576;;:::o;13124:430::-;13246:1;13228:20;;:6;:20;;;13220:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13330:1;13309:23;;:9;:23;;;13301:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13400:1;13391:6;:10;13383:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13476:17;13486:6;13476:9;:17::i;:::-;13466:6;:27;;13458:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;13124:430;;;:::o;13562:176::-;13650:11;:19;13662:6;13650:19;;;;;;;;;;;;;;;;;;;;;;;;;13649:20;:47;;;;;13674:11;:22;13686:9;13674:22;;;;;;;;;;;;;;;;;;;;;;;;;13673:23;13649:47;13646:85;;;13706:9;;;;;;;;;;;13698:31;;;;;;;;;;;;:::i;:::-;;;;;;;;;13646:85;13562:176;;:::o;13750:327::-;13854:11;:19;13866:6;13854:19;;;;;;;;;;;;;;;;;;;;;;;;;13853:20;:47;;;;;13878:11;:22;13890:9;13878:22;;;;;;;;;;;;;;;;;;;;;;;;;13877:23;13853:47;:73;;;;;13905:10;:21;13916:9;13905:21;;;;;;;;;;;;;;;;;;;;;;;;;13904:22;13853:73;:103;;;;;6827:42;13930:26;;:9;:26;;;;13853:103;13850:220;;;14018:15;;13981:32;14006:6;13981:9;:20;13991:9;13981:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;13980:53;;13972:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;13850:220;13750:327;;;:::o;14085:270::-;14179:4;;;;;;;;;;;14169:14;;:6;:14;;;;:37;;;;;14188:10;:18;14199:6;14188:18;;;;;;;;;;;;;;;;;;;;;;;;;14187:19;14169:37;:64;;;;;14211:11;:22;14223:9;14211:22;;;;;;;;;;;;;;;;;;;;;;;;;14210:23;14169:64;14166:99;;;14247:16;14261:1;14247:9;;:13;;:16;;;;:::i;:::-;14235:9;:28;;;;14166:99;14288:4;;;;;;;;;;;14278:14;;:6;:14;;;14275:73;;14316:30;7742:1;14316:15;:19;;:30;;;;:::i;:::-;14294:8;:19;14303:9;14294:19;;;;;;;;;;;;;;;:52;;;;14275:73;14085:270;;:::o;16266:207::-;16382:12;;16372:6;:22;;:45;;;;16398:11;:19;16410:6;16398:19;;;;;;;;;;;;;;;;;;;;;;;;;16372:45;:71;;;;16421:11;:22;16433:9;16421:22;;;;;;;;;;;;;;;;;;;;;;;;;16372:71;16364:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;16266:207;;;:::o;20635:188::-;20727:41;20742:6;20750:9;20761:6;20727:14;:41::i;:::-;20724:92;;;20770:29;20785:13;;20770:14;:29::i;:::-;20813:1;20801:9;:13;;;;20724:92;20635:188;;;:::o;14363:160::-;14444:4;14469:11;:19;14481:6;14469:19;;;;;;;;;;;;;;;;;;;;;;;;;14468:20;:47;;;;;14493:11;:22;14505:9;14493:22;;;;;;;;;;;;;;;;;;;;;;;;;14492:23;14468:47;14461:54;;14363:160;;;;:::o;14784:1065::-;14875:7;14898:31;14911:6;14919:9;14898:12;:31::i;:::-;14895:923;;;14941:17;14961:30;14973:6;14981:9;14961:11;:30::i;:::-;14941:50;;15002:17;15022:62;7669:5;15022:42;15033:30;15045:6;15053:9;15033:11;:30::i;:::-;15022:6;:10;;:42;;;;:::i;:::-;:46;;:62;;;;:::i;:::-;15002:82;;15095:15;15113:37;15140:9;15113:22;15127:7;;15113:9;:13;;:22;;;;:::i;:::-;:26;;:37;;;;:::i;:::-;15095:55;;15161:15;15179:39;15208:9;15179:24;15193:9;;15179;:13;;:24;;;;:::i;:::-;:28;;:39;;;;:::i;:::-;15161:57;;15229:15;15247:35;15274:7;15247:22;15261:7;15247:9;:13;;:22;;;;:::i;:::-;:26;;:35;;;;:::i;:::-;15229:53;;15306:1;15296:7;:11;15293:148;;;15346:37;15375:7;15346:9;:24;6827:42;15346:24;;;;;;;;;;;;;;;;:28;;:37;;;;:::i;:::-;15319:9;:24;6827:42;15319:24;;;;;;;;;;;;;;;:64;;;;6827:42;15399:40;;15408:6;15399:40;;;15431:7;15399:40;;;;;;:::i;:::-;;;;;;;;15293:148;15464:1;15454:7;:11;15451:178;;;15514:47;15553:7;15514:9;:34;15532:14;;;;;;;;;;;15514:34;;;;;;;;;;;;;;;;:38;;:47;;;;:::i;:::-;15477:9;:34;15495:14;;;;;;;;;;;15477:34;;;;;;;;;;;;;;;:84;;;;15602:14;;;;;;;;;;;15577:50;;15586:6;15577:50;;;15619:7;15577:50;;;;;;:::i;:::-;;;;;;;;15451:178;15652:1;15642:7;:11;15639:148;;;15692:37;15721:7;15692:9;:24;15710:4;15692:24;;;;;;;;;;;;;;;;:28;;:37;;;;:::i;:::-;15665:9;:24;15683:4;15665:24;;;;;;;;;;;;;;;:64;;;;15770:4;15745:40;;15754:6;15745:40;;;15777:7;15745:40;;;;;;:::i;:::-;;;;;;;;15639:148;15795:21;15806:9;15795:6;:10;;:21;;;;:::i;:::-;15788:28;;;;;;;;;14895:923;15835:6;15828:13;;14784:1065;;;;;;:::o;17013:286::-;17095:13;:24;17109:9;17095:24;;;;;;;;;;;;;;;;;;;;;;;;;:56;;;;;6717:2;17135;:15;;;;:::i;:::-;17132:1;:19;;;;:::i;:::-;17123:6;:28;17095:56;17092:84;;;17153:21;17170:1;17172;17153:16;:21::i;:::-;17092:84;17189:13;:24;17203:9;17189:24;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;;6717:2;17230;:15;;;;:::i;:::-;17227:1;:19;;;;:::i;:::-;17217:6;:29;;17189:57;:89;;;;;6717:2;17262;:15;;;;:::i;:::-;17259:1;:19;;;;:::i;:::-;17250:6;:28;17189:89;17186:106;;;17280:10;:8;:10::i;:::-;17186:106;17013:286;;:::o;16481:317::-;16550:5;;;;;;;;;;;:32;;;;;16573:9;16559:23;;:10;:23;;;;16550:32;:83;;;;;16588:10;:18;16599:6;16588:18;;;;;;;;;;;;;;;;;;;;;;;;;16587:19;:45;;;;16611:10;:21;16622:9;16611:21;;;;;;;;;;;;;;;;;;;;;;;;;16610:22;16587:45;16550:83;:110;;;;;16638:11;:22;16650:9;16638:22;;;;;;;;;;;;;;;;;;;;;;;;;16637:23;16550:110;:146;;;;16681:15;16667:11;;:29;16550:146;16547:247;;;16722:4;16703:5;:16;16709:9;16703:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;16736:10;:22;16747:10;16736:22;;;;;;;;;;;;;;;;;;;;;;;;;16731:58;;16782:4;16762:5;:17;16768:10;16762:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;16731:58;16547:247;16481:317;;:::o;20228:399::-;20326:4;20343:13;20369:15;;20359:6;:25;;20343:41;;20395:19;20445:13;;20417:24;20435:4;20417:9;:24::i;:::-;:41;;20395:63;;20477:8;;;;;;;;;;;20476:9;:24;;;;;20489:11;;;;;;;;;;;20476:24;:36;;;;;20504:8;20476:36;:59;;;;;20517:10;:18;20528:6;20517:18;;;;;;;;;;;;;;;;;;;;;;;;;20516:19;20476:59;:100;;;;;20554:11;:22;20566:9;20554:22;;;;;;;;;;;;;;;;;;;;;;;;;20553:23;20476:100;:125;;;;;7803:1;20580:9;;:21;;20476:125;:143;;;;;20605:14;20476:143;20469:150;;;;20228:399;;;;;:::o;20831:1240::-;8015:4;8004:8;;:15;;;;;;;;;;;;;;;;;;20902:19:::1;21013:1;20924:85;20989:19;;20924:60;20966:17;;20924:37;20946:14;;20924:17;;:21;;:37;;;;:::i;:::-;:41;;:60;;;;:::i;:::-;:64;;:85;;;;:::i;:::-;20923:91;;;;:::i;:::-;20902:112;;21025:32;21060:46;21094:11;21060:29;21071:17;;21060:6;:10;;:29;;;;:::i;:::-;:33;;:46;;;;:::i;:::-;21025:81;;21117:14;21134:36;21145:24;21134:6;:10;;:36;;;;:::i;:::-;21117:53;;21181:22;21206:21;21181:46;;21238:24;21255:6;21238:16;:24::i;:::-;21273:20;21296:41;21322:14;21296:21;:25;;:41;;;;:::i;:::-;21273:64;;21348:19;21369:52;21386:34;21402:17;;21386:11;:15;;:34;;;;:::i;:::-;21369:12;:16;;:52;;;;:::i;:::-;21348:73;;21432:29;21464:34;21480:17;;21464:11;:15;;:34;;;;:::i;:::-;21432:66;;21536:1;21512:21;:25;21509:108;;;21553:61;21566:24;21592:21;21553:12;:61::i;:::-;21509:108;21627:13;21643:41;21666:17;;21643:18;21659:1;21643:11;:15;;:18;;;;:::i;:::-;:22;;:41;;;;:::i;:::-;21627:57;;21706:1;21698:5;:9;21695:148;;;21722:12;21748:18;;;;;;;;;;;21740:32;;21780:5;21740:50;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21721:69;;;21812:7;21804:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;21708:135;21695:148;21853:13;21869:38;21892:14;;21869:18;21885:1;21869:11;:15;;:18;;;;:::i;:::-;:22;;:38;;;;:::i;:::-;21853:54;;21929:1;21921:5;:9;21918:144;;;21945:12;21971:15;;;;;;;;;;;21963:29;;22000:5;21963:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21944:66;;;22031:7;22023:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;21931:131;21918:144;20891:1180;;;;;;;;;8035:5:::0;8024:8;;:16;;;;;;;;;;;;;;;;;;20831:1240;:::o;14531:245::-;14611:4;14646:1;14635:8;;:12;:25;;;;;14652:8;;;;;;;;;;;14651:9;14635:25;:80;;;;14664:5;:13;14670:6;14664:13;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;14700:15;14681:8;:16;14690:6;14681:16;;;;;;;;;;;;;;;;:34;14664:51;14635:80;:100;;;;14719:5;:16;14725:9;14719:16;;;;;;;;;;;;;;;;;;;;;;;;;14635:100;:133;;;;14753:15;14739:11;;:29;14635:133;14628:140;;14531:245;;;;:::o;22436:434::-;22502:21;22540:1;22526:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22502:40;;22571:4;22553;22558:1;22553:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22597:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22587:4;22592:1;22587:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22621:53;22638:4;22653:6;;;;;;;;;;;22662:11;22621:8;:53::i;:::-;22685:6;;;;;;;;;;;:57;;;22757:11;22783:1;22799:4;22826;22846:15;22685:177;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22491:379;22436:434;:::o;22085:343::-;22166:53;22183:4;22198:6;;;;;;;;;;;22207:11;22166:8;:53::i;:::-;22230:6;;;;;;;;;;;:22;;;22260:9;22293:4;22313:11;22339:1;22355;22371:18;;;;;;;;;;;22404:15;22230:190;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22085:343;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:116::-;3916:21;3931:5;3916:21;:::i;:::-;3909:5;3906:32;3896:60;;3952:1;3949;3942:12;3896:60;3846:116;:::o;3968:133::-;4011:5;4049:6;4036:20;4027:29;;4065:30;4089:5;4065:30;:::i;:::-;3968:133;;;;:::o;4107:468::-;4172:6;4180;4229:2;4217:9;4208:7;4204:23;4200:32;4197:119;;;4235:79;;:::i;:::-;4197:119;4355:1;4380:50;4422:7;4413:6;4402:9;4398:22;4380:50;:::i;:::-;4370:60;;4326:114;4479:2;4505:53;4550:7;4541:6;4530:9;4526:22;4505:53;:::i;:::-;4495:63;;4450:118;4107:468;;;;;:::o;4581:619::-;4658:6;4666;4674;4723:2;4711:9;4702:7;4698:23;4694:32;4691:119;;;4729:79;;:::i;:::-;4691:119;4849:1;4874:53;4919:7;4910:6;4899:9;4895:22;4874:53;:::i;:::-;4864:63;;4820:117;4976:2;5002:53;5047:7;5038:6;5027:9;5023:22;5002:53;:::i;:::-;4992:63;;4947:118;5104:2;5130:53;5175:7;5166:6;5155:9;5151:22;5130:53;:::i;:::-;5120:63;;5075:118;4581:619;;;;;:::o;5206:329::-;5265:6;5314:2;5302:9;5293:7;5289:23;5285:32;5282:119;;;5320:79;;:::i;:::-;5282:119;5440:1;5465:53;5510:7;5501:6;5490:9;5486:22;5465:53;:::i;:::-;5455:63;;5411:117;5206:329;;;;:::o;5541:::-;5600:6;5649:2;5637:9;5628:7;5624:23;5620:32;5617:119;;;5655:79;;:::i;:::-;5617:119;5775:1;5800:53;5845:7;5836:6;5825:9;5821:22;5800:53;:::i;:::-;5790:63;;5746:117;5541:329;;;;:::o;5876:86::-;5911:7;5951:4;5944:5;5940:16;5929:27;;5876:86;;;:::o;5968:112::-;6051:22;6067:5;6051:22;:::i;:::-;6046:3;6039:35;5968:112;;:::o;6086:214::-;6175:4;6213:2;6202:9;6198:18;6190:26;;6226:67;6290:1;6279:9;6275:17;6266:6;6226:67;:::i;:::-;6086:214;;;;:::o;6306:765::-;6392:6;6400;6408;6416;6465:3;6453:9;6444:7;6440:23;6436:33;6433:120;;;6472:79;;:::i;:::-;6433:120;6592:1;6617:53;6662:7;6653:6;6642:9;6638:22;6617:53;:::i;:::-;6607:63;;6563:117;6719:2;6745:53;6790:7;6781:6;6770:9;6766:22;6745:53;:::i;:::-;6735:63;;6690:118;6847:2;6873:53;6918:7;6909:6;6898:9;6894:22;6873:53;:::i;:::-;6863:63;;6818:118;6975:2;7001:53;7046:7;7037:6;7026:9;7022:22;7001:53;:::i;:::-;6991:63;;6946:118;6306:765;;;;;;;:::o;7077:118::-;7164:24;7182:5;7164:24;:::i;:::-;7159:3;7152:37;7077:118;;:::o;7201:222::-;7294:4;7332:2;7321:9;7317:18;7309:26;;7345:71;7413:1;7402:9;7398:17;7389:6;7345:71;:::i;:::-;7201:222;;;;:::o;7429:474::-;7497:6;7505;7554:2;7542:9;7533:7;7529:23;7525:32;7522:119;;;7560:79;;:::i;:::-;7522:119;7680:1;7705:53;7750:7;7741:6;7730:9;7726:22;7705:53;:::i;:::-;7695:63;;7651:117;7807:2;7833:53;7878:7;7869:6;7858:9;7854:22;7833:53;:::i;:::-;7823:63;;7778:118;7429:474;;;;;:::o;7909:::-;7977:6;7985;8034:2;8022:9;8013:7;8009:23;8005:32;8002:119;;;8040:79;;:::i;:::-;8002:119;8160:1;8185:53;8230:7;8221:6;8210:9;8206:22;8185:53;:::i;:::-;8175:63;;8131:117;8287:2;8313:53;8358:7;8349:6;8338:9;8334:22;8313:53;:::i;:::-;8303:63;;8258:118;7909:474;;;;;:::o;8389:468::-;8454:6;8462;8511:2;8499:9;8490:7;8486:23;8482:32;8479:119;;;8517:79;;:::i;:::-;8479:119;8637:1;8662:50;8704:7;8695:6;8684:9;8680:22;8662:50;:::i;:::-;8652:60;;8608:114;8761:2;8787:53;8832:7;8823:6;8812:9;8808:22;8787:53;:::i;:::-;8777:63;;8732:118;8389:468;;;;;:::o;8863:1349::-;8985:6;8993;9001;9009;9017;9025;9033;9041;9090:3;9078:9;9069:7;9065:23;9061:33;9058:120;;;9097:79;;:::i;:::-;9058:120;9217:1;9242:53;9287:7;9278:6;9267:9;9263:22;9242:53;:::i;:::-;9232:63;;9188:117;9344:2;9370:53;9415:7;9406:6;9395:9;9391:22;9370:53;:::i;:::-;9360:63;;9315:118;9472:2;9498:53;9543:7;9534:6;9523:9;9519:22;9498:53;:::i;:::-;9488:63;;9443:118;9600:2;9626:53;9671:7;9662:6;9651:9;9647:22;9626:53;:::i;:::-;9616:63;;9571:118;9728:3;9755:53;9800:7;9791:6;9780:9;9776:22;9755:53;:::i;:::-;9745:63;;9699:119;9857:3;9884:53;9929:7;9920:6;9909:9;9905:22;9884:53;:::i;:::-;9874:63;;9828:119;9986:3;10013:53;10058:7;10049:6;10038:9;10034:22;10013:53;:::i;:::-;10003:63;;9957:119;10115:3;10142:53;10187:7;10178:6;10167:9;10163:22;10142:53;:::i;:::-;10132:63;;10086:119;8863:1349;;;;;;;;;;;:::o;10218:911::-;10313:6;10321;10329;10337;10345;10394:3;10382:9;10373:7;10369:23;10365:33;10362:120;;;10401:79;;:::i;:::-;10362:120;10521:1;10546:53;10591:7;10582:6;10571:9;10567:22;10546:53;:::i;:::-;10536:63;;10492:117;10648:2;10674:53;10719:7;10710:6;10699:9;10695:22;10674:53;:::i;:::-;10664:63;;10619:118;10776:2;10802:53;10847:7;10838:6;10827:9;10823:22;10802:53;:::i;:::-;10792:63;;10747:118;10904:2;10930:53;10975:7;10966:6;10955:9;10951:22;10930:53;:::i;:::-;10920:63;;10875:118;11032:3;11059:53;11104:7;11095:6;11084:9;11080:22;11059:53;:::i;:::-;11049:63;;11003:119;10218:911;;;;;;;;:::o;11135:104::-;11180:7;11209:24;11227:5;11209:24;:::i;:::-;11198:35;;11135:104;;;:::o;11245:138::-;11326:32;11352:5;11326:32;:::i;:::-;11319:5;11316:43;11306:71;;11373:1;11370;11363:12;11306:71;11245:138;:::o;11389:155::-;11443:5;11481:6;11468:20;11459:29;;11497:41;11532:5;11497:41;:::i;:::-;11389:155;;;;:::o;11550:345::-;11617:6;11666:2;11654:9;11645:7;11641:23;11637:32;11634:119;;;11672:79;;:::i;:::-;11634:119;11792:1;11817:61;11870:7;11861:6;11850:9;11846:22;11817:61;:::i;:::-;11807:71;;11763:125;11550:345;;;;:::o;11901:323::-;11957:6;12006:2;11994:9;11985:7;11981:23;11977:32;11974:119;;;12012:79;;:::i;:::-;11974:119;12132:1;12157:50;12199:7;12190:6;12179:9;12175:22;12157:50;:::i;:::-;12147:60;;12103:114;11901:323;;;;:::o;12230:180::-;12278:77;12275:1;12268:88;12375:4;12372:1;12365:15;12399:4;12396:1;12389:15;12416:102;12458:8;12505:5;12502:1;12498:13;12477:34;;12416:102;;;:::o;12524:848::-;12585:5;12592:4;12616:6;12607:15;;12640:5;12631:14;;12654:712;12675:1;12665:8;12662:15;12654:712;;;12770:4;12765:3;12761:14;12755:4;12752:24;12749:50;;;12779:18;;:::i;:::-;12749:50;12829:1;12819:8;12815:16;12812:451;;;13244:4;13237:5;13233:16;13224:25;;12812:451;13294:4;13288;13284:15;13276:23;;13324:32;13347:8;13324:32;:::i;:::-;13312:44;;12654:712;;;12524:848;;;;;;;:::o;13378:1073::-;13432:5;13623:8;13613:40;;13644:1;13635:10;;13646:5;;13613:40;13672:4;13662:36;;13689:1;13680:10;;13691:5;;13662:36;13758:4;13806:1;13801:27;;;;13842:1;13837:191;;;;13751:277;;13801:27;13819:1;13810:10;;13821:5;;;13837:191;13882:3;13872:8;13869:17;13866:43;;;13889:18;;:::i;:::-;13866:43;13938:8;13935:1;13931:16;13922:25;;13973:3;13966:5;13963:14;13960:40;;;13980:18;;:::i;:::-;13960:40;14013:5;;;13751:277;;14137:2;14127:8;14124:16;14118:3;14112:4;14109:13;14105:36;14087:2;14077:8;14074:16;14069:2;14063:4;14060:12;14056:35;14040:111;14037:246;;;14193:8;14187:4;14183:19;14174:28;;14228:3;14221:5;14218:14;14215:40;;;14235:18;;:::i;:::-;14215:40;14268:5;;14037:246;14308:42;14346:3;14336:8;14330:4;14327:1;14308:42;:::i;:::-;14293:57;;;;14382:4;14377:3;14373:14;14366:5;14363:25;14360:51;;;14391:18;;:::i;:::-;14360:51;14440:4;14433:5;14429:16;14420:25;;13378:1073;;;;;;:::o;14457:281::-;14515:5;14539:23;14557:4;14539:23;:::i;:::-;14531:31;;14583:25;14599:8;14583:25;:::i;:::-;14571:37;;14627:104;14664:66;14654:8;14648:4;14627:104;:::i;:::-;14618:113;;14457:281;;;;:::o;14744:348::-;14784:7;14807:20;14825:1;14807:20;:::i;:::-;14802:25;;14841:20;14859:1;14841:20;:::i;:::-;14836:25;;15029:1;14961:66;14957:74;14954:1;14951:81;14946:1;14939:9;14932:17;14928:105;14925:131;;;15036:18;;:::i;:::-;14925:131;15084:1;15081;15077:9;15066:20;;14744:348;;;;:::o;15098:161::-;15238:13;15234:1;15226:6;15222:14;15215:37;15098:161;:::o;15265:366::-;15407:3;15428:67;15492:2;15487:3;15428:67;:::i;:::-;15421:74;;15504:93;15593:3;15504:93;:::i;:::-;15622:2;15617:3;15613:12;15606:19;;15265:366;;;:::o;15637:419::-;15803:4;15841:2;15830:9;15826:18;15818:26;;15890:9;15884:4;15880:20;15876:1;15865:9;15861:17;15854:47;15918:131;16044:4;15918:131;:::i;:::-;15910:139;;15637:419;;;:::o;16062:143::-;16119:5;16150:6;16144:13;16135:22;;16166:33;16193:5;16166:33;:::i;:::-;16062:143;;;;:::o;16211:351::-;16281:6;16330:2;16318:9;16309:7;16305:23;16301:32;16298:119;;;16336:79;;:::i;:::-;16298:119;16456:1;16481:64;16537:7;16528:6;16517:9;16513:22;16481:64;:::i;:::-;16471:74;;16427:128;16211:351;;;;:::o;16568:332::-;16689:4;16727:2;16716:9;16712:18;16704:26;;16740:71;16808:1;16797:9;16793:17;16784:6;16740:71;:::i;:::-;16821:72;16889:2;16878:9;16874:18;16865:6;16821:72;:::i;:::-;16568:332;;;;;:::o;16906:137::-;16960:5;16991:6;16985:13;16976:22;;17007:30;17031:5;17007:30;:::i;:::-;16906:137;;;;:::o;17049:345::-;17116:6;17165:2;17153:9;17144:7;17140:23;17136:32;17133:119;;;17171:79;;:::i;:::-;17133:119;17291:1;17316:61;17369:7;17360:6;17349:9;17345:22;17316:61;:::i;:::-;17306:71;;17262:125;17049:345;;;;:::o;17400:180::-;17448:77;17445:1;17438:88;17545:4;17542:1;17535:15;17569:4;17566:1;17559:15;17586:185;17626:1;17643:20;17661:1;17643:20;:::i;:::-;17638:25;;17677:20;17695:1;17677:20;:::i;:::-;17672:25;;17716:1;17706:35;;17721:18;;:::i;:::-;17706:35;17763:1;17760;17756:9;17751:14;;17586:185;;;;:::o;17777:232::-;17917:34;17913:1;17905:6;17901:14;17894:58;17986:15;17981:2;17973:6;17969:15;17962:40;17777:232;:::o;18015:366::-;18157:3;18178:67;18242:2;18237:3;18178:67;:::i;:::-;18171:74;;18254:93;18343:3;18254:93;:::i;:::-;18372:2;18367:3;18363:12;18356:19;;18015:366;;;:::o;18387:419::-;18553:4;18591:2;18580:9;18576:18;18568:26;;18640:9;18634:4;18630:20;18626:1;18615:9;18611:17;18604:47;18668:131;18794:4;18668:131;:::i;:::-;18660:139;;18387:419;;;:::o;18812:177::-;18952:29;18948:1;18940:6;18936:14;18929:53;18812:177;:::o;18995:366::-;19137:3;19158:67;19222:2;19217:3;19158:67;:::i;:::-;19151:74;;19234:93;19323:3;19234:93;:::i;:::-;19352:2;19347:3;19343:12;19336:19;;18995:366;;;:::o;19367:419::-;19533:4;19571:2;19560:9;19556:18;19548:26;;19620:9;19614:4;19610:20;19606:1;19595:9;19591:17;19584:47;19648:131;19774:4;19648:131;:::i;:::-;19640:139;;19367:419;;;:::o;19792:60::-;19820:3;19841:5;19834:12;;19792:60;;;:::o;19858:142::-;19908:9;19941:53;19959:34;19968:24;19986:5;19968:24;:::i;:::-;19959:34;:::i;:::-;19941:53;:::i;:::-;19928:66;;19858:142;;;:::o;20006:126::-;20056:9;20089:37;20120:5;20089:37;:::i;:::-;20076:50;;20006:126;;;:::o;20138:134::-;20196:9;20229:37;20260:5;20229:37;:::i;:::-;20216:50;;20138:134;;;:::o;20278:147::-;20373:45;20412:5;20373:45;:::i;:::-;20368:3;20361:58;20278:147;;:::o;20431:238::-;20532:4;20570:2;20559:9;20555:18;20547:26;;20583:79;20659:1;20648:9;20644:17;20635:6;20583:79;:::i;:::-;20431:238;;;;:::o;20675:223::-;20815:34;20811:1;20803:6;20799:14;20792:58;20884:6;20879:2;20871:6;20867:15;20860:31;20675:223;:::o;20904:366::-;21046:3;21067:67;21131:2;21126:3;21067:67;:::i;:::-;21060:74;;21143:93;21232:3;21143:93;:::i;:::-;21261:2;21256:3;21252:12;21245:19;;20904:366;;;:::o;21276:419::-;21442:4;21480:2;21469:9;21465:18;21457:26;;21529:9;21523:4;21519:20;21515:1;21504:9;21500:17;21493:47;21557:131;21683:4;21557:131;:::i;:::-;21549:139;;21276:419;;;:::o;21701:221::-;21841:34;21837:1;21829:6;21825:14;21818:58;21910:4;21905:2;21897:6;21893:15;21886:29;21701:221;:::o;21928:366::-;22070:3;22091:67;22155:2;22150:3;22091:67;:::i;:::-;22084:74;;22167:93;22256:3;22167:93;:::i;:::-;22285:2;22280:3;22276:12;22269:19;;21928:366;;;:::o;22300:419::-;22466:4;22504:2;22493:9;22489:18;22481:26;;22553:9;22547:4;22543:20;22539:1;22528:9;22524:17;22517:47;22581:131;22707:4;22581:131;:::i;:::-;22573:139;;22300:419;;;:::o;22725:191::-;22765:4;22785:20;22803:1;22785:20;:::i;:::-;22780:25;;22819:20;22837:1;22819:20;:::i;:::-;22814:25;;22858:1;22855;22852:8;22849:34;;;22863:18;;:::i;:::-;22849:34;22908:1;22905;22901:9;22893:17;;22725:191;;;;:::o;22922:305::-;22962:3;22981:20;22999:1;22981:20;:::i;:::-;22976:25;;23015:20;23033:1;23015:20;:::i;:::-;23010:25;;23169:1;23101:66;23097:74;23094:1;23091:81;23088:107;;;23175:18;;:::i;:::-;23088:107;23219:1;23216;23212:9;23205:16;;22922:305;;;;:::o;23233:224::-;23373:34;23369:1;23361:6;23357:14;23350:58;23442:7;23437:2;23429:6;23425:15;23418:32;23233:224;:::o;23463:366::-;23605:3;23626:67;23690:2;23685:3;23626:67;:::i;:::-;23619:74;;23702:93;23791:3;23702:93;:::i;:::-;23820:2;23815:3;23811:12;23804:19;;23463:366;;;:::o;23835:419::-;24001:4;24039:2;24028:9;24024:18;24016:26;;24088:9;24082:4;24078:20;24074:1;24063:9;24059:17;24052:47;24116:131;24242:4;24116:131;:::i;:::-;24108:139;;23835:419;;;:::o;24260:222::-;24400:34;24396:1;24388:6;24384:14;24377:58;24469:5;24464:2;24456:6;24452:15;24445:30;24260:222;:::o;24488:366::-;24630:3;24651:67;24715:2;24710:3;24651:67;:::i;:::-;24644:74;;24727:93;24816:3;24727:93;:::i;:::-;24845:2;24840:3;24836:12;24829:19;;24488:366;;;:::o;24860:419::-;25026:4;25064:2;25053:9;25049:18;25041:26;;25113:9;25107:4;25103:20;25099:1;25088:9;25084:17;25077:47;25141:131;25267:4;25141:131;:::i;:::-;25133:139;;24860:419;;;:::o;25285:228::-;25425:34;25421:1;25413:6;25409:14;25402:58;25494:11;25489:2;25481:6;25477:15;25470:36;25285:228;:::o;25519:366::-;25661:3;25682:67;25746:2;25741:3;25682:67;:::i;:::-;25675:74;;25758:93;25847:3;25758:93;:::i;:::-;25876:2;25871:3;25867:12;25860:19;;25519:366;;;:::o;25891:419::-;26057:4;26095:2;26084:9;26080:18;26072:26;;26144:9;26138:4;26134:20;26130:1;26119:9;26115:17;26108:47;26172:131;26298:4;26172:131;:::i;:::-;26164:139;;25891:419;;;:::o;26316:236::-;26456:34;26452:1;26444:6;26440:14;26433:58;26525:19;26520:2;26512:6;26508:15;26501:44;26316:236;:::o;26558:366::-;26700:3;26721:67;26785:2;26780:3;26721:67;:::i;:::-;26714:74;;26797:93;26886:3;26797:93;:::i;:::-;26915:2;26910:3;26906:12;26899:19;;26558:366;;;:::o;26930:419::-;27096:4;27134:2;27123:9;27119:18;27111:26;;27183:9;27177:4;27173:20;27169:1;27158:9;27154:17;27147:47;27211:131;27337:4;27211:131;:::i;:::-;27203:139;;26930:419;;;:::o;27355:159::-;27495:11;27491:1;27483:6;27479:14;27472:35;27355:159;:::o;27520:365::-;27662:3;27683:66;27747:1;27742:3;27683:66;:::i;:::-;27676:73;;27758:93;27847:3;27758:93;:::i;:::-;27876:2;27871:3;27867:12;27860:19;;27520:365;;;:::o;27891:419::-;28057:4;28095:2;28084:9;28080:18;28072:26;;28144:9;28138:4;28134:20;28130:1;28119:9;28115:17;28108:47;28172:131;28298:4;28172:131;:::i;:::-;28164:139;;27891:419;;;:::o;28316:180::-;28456:32;28452:1;28444:6;28440:14;28433:56;28316:180;:::o;28502:366::-;28644:3;28665:67;28729:2;28724:3;28665:67;:::i;:::-;28658:74;;28741:93;28830:3;28741:93;:::i;:::-;28859:2;28854:3;28850:12;28843:19;;28502:366;;;:::o;28874:419::-;29040:4;29078:2;29067:9;29063:18;29055:26;;29127:9;29121:4;29117:20;29113:1;29102:9;29098:17;29091:47;29155:131;29281:4;29155:131;:::i;:::-;29147:139;;28874:419;;;:::o;29299:167::-;29439:19;29435:1;29427:6;29423:14;29416:43;29299:167;:::o;29472:366::-;29614:3;29635:67;29699:2;29694:3;29635:67;:::i;:::-;29628:74;;29711:93;29800:3;29711:93;:::i;:::-;29829:2;29824:3;29820:12;29813:19;;29472:366;;;:::o;29844:419::-;30010:4;30048:2;30037:9;30033:18;30025:26;;30097:9;30091:4;30087:20;30083:1;30072:9;30068:17;30061:47;30125:131;30251:4;30125:131;:::i;:::-;30117:139;;29844:419;;;:::o;30269:147::-;30370:11;30407:3;30392:18;;30269:147;;;;:::o;30422:114::-;;:::o;30542:398::-;30701:3;30722:83;30803:1;30798:3;30722:83;:::i;:::-;30715:90;;30814:93;30903:3;30814:93;:::i;:::-;30932:1;30927:3;30923:11;30916:18;;30542:398;;;:::o;30946:379::-;31130:3;31152:147;31295:3;31152:147;:::i;:::-;31145:154;;31316:3;31309:10;;30946:379;;;:::o;31331:166::-;31471:18;31467:1;31459:6;31455:14;31448:42;31331:166;:::o;31503:366::-;31645:3;31666:67;31730:2;31725:3;31666:67;:::i;:::-;31659:74;;31742:93;31831:3;31742:93;:::i;:::-;31860:2;31855:3;31851:12;31844:19;;31503:366;;;:::o;31875:419::-;32041:4;32079:2;32068:9;32064:18;32056:26;;32128:9;32122:4;32118:20;32114:1;32103:9;32099:17;32092:47;32156:131;32282:4;32156:131;:::i;:::-;32148:139;;31875:419;;;:::o;32300:180::-;32348:77;32345:1;32338:88;32445:4;32442:1;32435:15;32469:4;32466:1;32459:15;32486:180;32534:77;32531:1;32524:88;32631:4;32628:1;32621:15;32655:4;32652:1;32645:15;32672:143;32729:5;32760:6;32754:13;32745:22;;32776:33;32803:5;32776:33;:::i;:::-;32672:143;;;;:::o;32821:351::-;32891:6;32940:2;32928:9;32919:7;32915:23;32911:32;32908:119;;;32946:79;;:::i;:::-;32908:119;33066:1;33091:64;33147:7;33138:6;33127:9;33123:22;33091:64;:::i;:::-;33081:74;;33037:128;32821:351;;;;:::o;33178:85::-;33223:7;33252:5;33241:16;;33178:85;;;:::o;33269:158::-;33327:9;33360:61;33378:42;33387:32;33413:5;33387:32;:::i;:::-;33378:42;:::i;:::-;33360:61;:::i;:::-;33347:74;;33269:158;;;:::o;33433:147::-;33528:45;33567:5;33528:45;:::i;:::-;33523:3;33516:58;33433:147;;:::o;33586:114::-;33653:6;33687:5;33681:12;33671:22;;33586:114;;;:::o;33706:184::-;33805:11;33839:6;33834:3;33827:19;33879:4;33874:3;33870:14;33855:29;;33706:184;;;;:::o;33896:132::-;33963:4;33986:3;33978:11;;34016:4;34011:3;34007:14;33999:22;;33896:132;;;:::o;34034:108::-;34111:24;34129:5;34111:24;:::i;:::-;34106:3;34099:37;34034:108;;:::o;34148:179::-;34217:10;34238:46;34280:3;34272:6;34238:46;:::i;:::-;34316:4;34311:3;34307:14;34293:28;;34148:179;;;;:::o;34333:113::-;34403:4;34435;34430:3;34426:14;34418:22;;34333:113;;;:::o;34482:732::-;34601:3;34630:54;34678:5;34630:54;:::i;:::-;34700:86;34779:6;34774:3;34700:86;:::i;:::-;34693:93;;34810:56;34860:5;34810:56;:::i;:::-;34889:7;34920:1;34905:284;34930:6;34927:1;34924:13;34905:284;;;35006:6;35000:13;35033:63;35092:3;35077:13;35033:63;:::i;:::-;35026:70;;35119:60;35172:6;35119:60;:::i;:::-;35109:70;;34965:224;34952:1;34949;34945:9;34940:14;;34905:284;;;34909:14;35205:3;35198:10;;34606:608;;;34482:732;;;;:::o;35220:831::-;35483:4;35521:3;35510:9;35506:19;35498:27;;35535:71;35603:1;35592:9;35588:17;35579:6;35535:71;:::i;:::-;35616:80;35692:2;35681:9;35677:18;35668:6;35616:80;:::i;:::-;35743:9;35737:4;35733:20;35728:2;35717:9;35713:18;35706:48;35771:108;35874:4;35865:6;35771:108;:::i;:::-;35763:116;;35889:72;35957:2;35946:9;35942:18;35933:6;35889:72;:::i;:::-;35971:73;36039:3;36028:9;36024:19;36015:6;35971:73;:::i;:::-;35220:831;;;;;;;;:::o;36057:807::-;36306:4;36344:3;36333:9;36329:19;36321:27;;36358:71;36426:1;36415:9;36411:17;36402:6;36358:71;:::i;:::-;36439:72;36507:2;36496:9;36492:18;36483:6;36439:72;:::i;:::-;36521:80;36597:2;36586:9;36582:18;36573:6;36521:80;:::i;:::-;36611;36687:2;36676:9;36672:18;36663:6;36611:80;:::i;:::-;36701:73;36769:3;36758:9;36754:19;36745:6;36701:73;:::i;:::-;36784;36852:3;36841:9;36837:19;36828:6;36784:73;:::i;:::-;36057:807;;;;;;;;;:::o;36870:663::-;36958:6;36966;36974;37023:2;37011:9;37002:7;36998:23;36994:32;36991:119;;;37029:79;;:::i;:::-;36991:119;37149:1;37174:64;37230:7;37221:6;37210:9;37206:22;37174:64;:::i;:::-;37164:74;;37120:128;37287:2;37313:64;37369:7;37360:6;37349:9;37345:22;37313:64;:::i;:::-;37303:74;;37258:129;37426:2;37452:64;37508:7;37499:6;37488:9;37484:22;37452:64;:::i;:::-;37442:74;;37397:129;36870:663;;;;;:::o

Swarm Source

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