ETH Price: $3,994.74 (+0.05%)

Token

ERC-20: The Great Sprint (Sprint)
 

Overview

Max Total Supply

10,000,000 Sprint

Holders

317

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
cytoblastoma.eth
Balance
7,702.753803676377714999 Sprint

Value
$0.00
0xA3d83cA657170c10f50c81cf49B1E86A81f0E815
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:
SprintToken

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-31
*/

// SPDX-License-Identifier:MIT

pragma solidity ^0.8.10;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

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

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any _account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

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

interface IDexSwapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDexSwapPair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IDexSwapRouter {
    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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

}

contract SprintToken is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "The Great Sprint";
    string private _symbol = "Sprint";
    uint8 private _decimals = 18; 

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    uint256 public _buyTreasuryFee = 5;
    uint256 public _sellTreasuryFee = 5;

    address public Treasury = address(0xC9e69B35f4b12c43627Ba3628801aFEfF1A2Caa6);
    
    uint256 feedenominator = 100;

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

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;

    uint256 private _totalSupply = 10_000_000 * 10**_decimals;

    uint256 public _maxTxAmount =  _totalSupply.mul(1).div(100);     // 1%
    uint256 public _walletMax = _totalSupply.mul(1).div(100);        // 1%

    uint256 public swapThreshold = 20_000 * 10**_decimals;

    bool public swapEnabled = true;
    bool public swapbylimit = true;
    bool public EnableTxLimit = true;
    bool public checkWalletLimit = true;

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool inSwap;

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        address _owner = address(0x69A1C6b73799F4b80B51f89eEcd0207230a1De70);

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        dexPair = IDexSwapFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );

        dexRouter = _dexRouter;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[_owner] = true;
        isExcludedFromFee[address(dexRouter)] = true;

        isWalletLimitExempt[_owner] = true;
        isWalletLimitExempt[address(dexPair)] = true;
        isWalletLimitExempt[address(dexRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[deadAddress] = true;
        isWalletLimitExempt[zeroAddress] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[zeroAddress] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(dexRouter)] = true;

        isMarketPair[address(dexPair)] = true;

        _allowances[address(this)][address(dexRouter)] = ~uint256(0);
        _allowances[address(this)][address(dexPair)] = ~uint256(0);

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

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

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

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

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

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

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        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);
    }

     //to recieve ETH from Router when swaping
    receive() external payable {}

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

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

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        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");
    
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;

            if (overMinimumTokenBalance && !inSwap && !isMarketPair[sender] && swapEnabled) {
                swapBack(contractTokenBalance);
            }

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            } 
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Max Wallet Limit Exceeded!!");
            }

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;

        }

    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;

        unchecked {

            if(isMarketPair[sender]) { 
                feeAmount = amount.mul(_buyTreasuryFee).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(_sellTreasuryFee).div(feedenominator);
            }

            if(feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
        
    }

    function swapBack(uint contractBalance) internal swapping {

        if(swapbylimit) contractBalance = swapThreshold;

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(contractBalance);
        uint256 amountReceived = address(this).balance.sub(initialBalance);

       if(amountReceived > 0) payable(Treasury).transfer(amountReceived);

    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        _approve(address(this), address(dexRouter), tokenAmount);

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function rescueFunds() external onlyOwner { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    function rescueTokens(address _token,address recipient,uint _amount) external onlyOwner {
        (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)',  recipient, _amount));
        require(success, 'Token payment failed');
    }

    function setFee(uint _buyFee, uint _sellFee) external onlyOwner {    
        _buyTreasuryFee = _buyFee;
        _sellTreasuryFee = _sellFee;
    }

    function enableTxLimit(bool _status) external onlyOwner {
        EnableTxLimit = _status;
    }

    function enableWalletLimit(bool _status) external onlyOwner {
        checkWalletLimit = _status;
    }

    function excludeFromFee(address _adr,bool _status) external onlyOwner {
        isExcludedFromFee[_adr] = _status;
    }

    function excludeWalletLimit(address _adr,bool _status) external onlyOwner {
        isWalletLimitExempt[_adr] = _status;
    }

    function excludeTxLimit(address _adr,bool _status) external onlyOwner {
        isTxLimitExempt[_adr] = _status;
    }

    function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
        _walletMax = newLimit;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }
    
    function setTreasuryWallet(address _newWallet) external onlyOwner {
        Treasury = _newWallet;
    }

    function setMarketPair(address _pair, bool _status) external onlyOwner {
        isMarketPair[_pair] = _status;
        if(_status) {
            isWalletLimitExempt[_pair] = _status;
        }
    }

    function setSwapBackSettings(bool _enabled, bool _limited)
        external
        onlyOwner
    {
        swapEnabled = _enabled;
        swapbylimit = _limited;
    }

    function setSwapthreshold(uint _threshold) external onlyOwner {
        swapThreshold = _threshold;
    }

    function setManualRouter(address _router) external onlyOwner {
        dexRouter = IDexSwapRouter(_router);
    }

    function setManualPair(address _pair) external onlyOwner {
        dexPair = _pair;
    }


}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTreasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTreasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setManualPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setManualRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setSwapthreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapbylimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526040518060400160405280601081526020017f54686520477265617420537072696e7400000000000000000000000000000000815250600190816200004a91906200114c565b506040518060400160405280600681526020017f537072696e740000000000000000000000000000000000000000000000000000815250600290816200009191906200114c565b506012600360006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250600073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1681525060056004556005805573c9e69b35f4b12c43627ba3628801afeff1a2caa6600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064600755600360009054906101000a900460ff16600a620001989190620013c3565b62989680620001a8919062001414565b600e55620001d86064620001c96001600e5462000cc960201b90919060201c565b62000d4c60201b90919060201c565b600f55620002086064620001f96001600e5462000cc960201b90919060201c565b62000d4c60201b90919060201c565b601055600360009054906101000a900460ff16600a620002299190620013c3565b614e2062000238919062001414565b6011556001601260006101000a81548160ff0219169083151502179055506001601260016101000a81548160ff0219169083151502179055506001601260026101000a81548160ff0219169083151502179055506001601260036101000a81548160ff021916908315150217905550348015620002b457600080fd5b50620002d5620002c962000d9e60201b60201c565b62000da660201b60201c565b60007369a1c6b73799f4b80b51f89eecd0207230a1de7090506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000353573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003799190620014c9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004079190620014c9565b6040518363ffffffff1660e01b8152600401620004269291906200150c565b6020604051808303816000875af115801562000446573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046c9190620014c9565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600019600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600019600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e54600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e5460405162000cb991906200154a565b60405180910390a3505062001719565b600080830362000cdd576000905062000d46565b6000828462000ced919062001414565b905082848262000cfe919062001596565b1462000d41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d389062001655565b60405180910390fd5b809150505b92915050565b600062000d9683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000e6a60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808311829062000eb4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000eab9190620016f5565b60405180910390fd5b506000838562000ec5919062001596565b9050809150509392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f5457607f821691505b60208210810362000f6a5762000f6962000f0c565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000fd47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f95565b62000fe0868362000f95565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200102d62001027620010218462000ff8565b62001002565b62000ff8565b9050919050565b6000819050919050565b62001049836200100c565b62001061620010588262001034565b84845462000fa2565b825550505050565b600090565b6200107862001069565b620010858184846200103e565b505050565b5b81811015620010ad57620010a16000826200106e565b6001810190506200108b565b5050565b601f821115620010fc57620010c68162000f70565b620010d18462000f85565b81016020851015620010e1578190505b620010f9620010f08562000f85565b8301826200108a565b50505b505050565b600082821c905092915050565b6000620011216000198460080262001101565b1980831691505092915050565b60006200113c83836200110e565b9150826002028217905092915050565b620011578262000ed2565b67ffffffffffffffff81111562001173576200117262000edd565b5b6200117f825462000f3b565b6200118c828285620010b1565b600060209050601f831160018114620011c45760008415620011af578287015190505b620011bb85826200112e565b8655506200122b565b601f198416620011d48662000f70565b60005b82811015620011fe57848901518255600182019150602085019450602081019050620011d7565b868310156200121e57848901516200121a601f8916826200110e565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620012c15780860481111562001299576200129862001233565b5b6001851615620012a95780820291505b8081029050620012b98562001262565b945062001279565b94509492505050565b600082620012dc5760019050620013af565b81620012ec5760009050620013af565b8160018114620013055760028114620013105762001346565b6001915050620013af565b60ff84111562001325576200132462001233565b5b8360020a9150848211156200133f576200133e62001233565b5b50620013af565b5060208310610133831016604e8410600b8410161715620013805782820a9050838111156200137a576200137962001233565b5b620013af565b6200138f84848460016200126f565b92509050818404811115620013a957620013a862001233565b5b81810290505b9392505050565b600060ff82169050919050565b6000620013d08262000ff8565b9150620013dd83620013b6565b92506200140c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620012ca565b905092915050565b6000620014218262000ff8565b91506200142e8362000ff8565b92508282026200143e8162000ff8565b9150828204841483151762001458576200145762001233565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620014918262001464565b9050919050565b620014a38162001484565b8114620014af57600080fd5b50565b600081519050620014c38162001498565b92915050565b600060208284031215620014e257620014e16200145f565b5b6000620014f284828501620014b2565b91505092915050565b620015068162001484565b82525050565b6000604082019050620015236000830185620014fb565b620015326020830184620014fb565b9392505050565b620015448162000ff8565b82525050565b600060208201905062001561600083018462001539565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620015a38262000ff8565b9150620015b08362000ff8565b925082620015c357620015c262001567565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006200163d602183620015ce565b91506200164a82620015df565b604082019050919050565b6000602082019050818103600083015262001670816200162e565b9050919050565b60005b83811015620016975780820151818401526020810190506200167a565b60008484015250505050565b6000601f19601f8301169050919050565b6000620016c18262000ed2565b620016cd8185620015ce565b9350620016df81856020860162001677565b620016ea81620016a3565b840191505092915050565b60006020820190508181036000830152620017118184620016b4565b905092915050565b60805160a0516144a66200174d60003960008181610c370152610d8f015260008181610d630152610dbb01526144a66000f3fe6080604052600436106102b25760003560e01c8063728d41c911610175578063c867d60b116100dc578063e6b2603b11610095578063f242ab411161006f578063f242ab4114610acf578063f2fde38b14610afa578063f71b9bbf14610b23578063f872858a14610b4c576102b9565b8063e6b2603b14610a64578063e9fd339414610a7b578063ee828db314610aa6576102b9565b8063c867d60b14610944578063cea9d26f14610981578063d4e43fb3146109aa578063d628df9c146109d3578063dd62ed3e146109fe578063df8408fe14610a3b576102b9565b8063a457c2d71161012e578063a457c2d714610826578063a8602fea14610863578063a9059cbb1461088c578063adc0d092146108c9578063ae85ade6146108f2578063c16dd4a41461091b576102b9565b8063728d41c9146107145780637d1db4a51461073d578063807c2d9c146107685780638b42507f146107935780638da5cb5b146107d057806395d89b41146107fb576102b9565b80633ecad271116102195780635c85974f116101d25780635c85974f146106185780635e42358c14610641578063651a89871461066c5780636ddd17131461069557806370a08231146106c0578063715018a6146106fd576102b9565b80633ecad271146104f85780634974d88f1461053557806352f7c9881461055e5780635342acb414610587578063563df32f146105c457806359fac517146105ef576102b9565b806323b872dd1161026b57806323b872dd146103d257806324fcf8cf1461040f57806327c8f8351461043a5780632b112e4914610465578063313ce5671461049057806339509351146104bb576102b9565b80630445b667146102be57806306fdde03146102e95780630758d924146103145780630930907b1461033f578063095ea7b31461036a57806318160ddd146103a7576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610b77565b6040516102e09190613446565b60405180910390f35b3480156102f557600080fd5b506102fe610b7d565b60405161030b91906134f1565b60405180910390f35b34801561032057600080fd5b50610329610c0f565b6040516103369190613592565b60405180910390f35b34801561034b57600080fd5b50610354610c35565b60405161036191906135ce565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c9190613646565b610c59565b60405161039e91906136a1565b60405180910390f35b3480156103b357600080fd5b506103bc610c77565b6040516103c99190613446565b60405180910390f35b3480156103de57600080fd5b506103f960048036038101906103f491906136bc565b610c81565b60405161040691906136a1565b60405180910390f35b34801561041b57600080fd5b50610424610d5b565b6040516104319190613446565b60405180910390f35b34801561044657600080fd5b5061044f610d61565b60405161045c91906135ce565b60405180910390f35b34801561047157600080fd5b5061047a610d85565b6040516104879190613446565b60405180910390f35b34801561049c57600080fd5b506104a5610e03565b6040516104b2919061372b565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd9190613646565b610e1a565b6040516104ef91906136a1565b60405180910390f35b34801561050457600080fd5b5061051f600480360381019061051a9190613746565b610ecd565b60405161052c91906136a1565b60405180910390f35b34801561054157600080fd5b5061055c6004803603810190610557919061379f565b610eed565b005b34801561056a57600080fd5b50610585600480360381019061058091906137cc565b610f86565b005b34801561059357600080fd5b506105ae60048036038101906105a99190613746565b611014565b6040516105bb91906136a1565b60405180910390f35b3480156105d057600080fd5b506105d9611034565b6040516105e691906135ce565b60405180910390f35b3480156105fb57600080fd5b5061061660048036038101906106119190613746565b61105a565b005b34801561062457600080fd5b5061063f600480360381019061063a919061380c565b61111a565b005b34801561064d57600080fd5b506106566111a0565b60405161066391906136a1565b60405180910390f35b34801561067857600080fd5b50610693600480360381019061068e9190613839565b6111b3565b005b3480156106a157600080fd5b506106aa61128a565b6040516106b791906136a1565b60405180910390f35b3480156106cc57600080fd5b506106e760048036038101906106e29190613746565b61129d565b6040516106f49190613446565b60405180910390f35b34801561070957600080fd5b506107126112e6565b005b34801561072057600080fd5b5061073b6004803603810190610736919061380c565b61136e565b005b34801561074957600080fd5b506107526113f4565b60405161075f9190613446565b60405180910390f35b34801561077457600080fd5b5061077d6113fa565b60405161078a9190613446565b60405180910390f35b34801561079f57600080fd5b506107ba60048036038101906107b59190613746565b611400565b6040516107c791906136a1565b60405180910390f35b3480156107dc57600080fd5b506107e5611420565b6040516107f291906135ce565b60405180910390f35b34801561080757600080fd5b50610810611449565b60405161081d91906134f1565b60405180910390f35b34801561083257600080fd5b5061084d60048036038101906108489190613646565b6114db565b60405161085a91906136a1565b60405180910390f35b34801561086f57600080fd5b5061088a60048036038101906108859190613746565b6115a8565b005b34801561089857600080fd5b506108b360048036038101906108ae9190613646565b611668565b6040516108c091906136a1565b60405180910390f35b3480156108d557600080fd5b506108f060048036038101906108eb919061380c565b611687565b005b3480156108fe57600080fd5b5061091960048036038101906109149190613839565b61170d565b005b34801561092757600080fd5b50610942600480360381019061093d9190613839565b6117e4565b005b34801561095057600080fd5b5061096b60048036038101906109669190613746565b611919565b60405161097891906136a1565b60405180910390f35b34801561098d57600080fd5b506109a860048036038101906109a391906136bc565b611939565b005b3480156109b657600080fd5b506109d160048036038101906109cc9190613879565b611af7565b005b3480156109df57600080fd5b506109e8611bab565b6040516109f59190613446565b60405180910390f35b348015610a0a57600080fd5b50610a256004803603810190610a2091906138b9565b611bb1565b604051610a329190613446565b60405180910390f35b348015610a4757600080fd5b50610a626004803603810190610a5d9190613839565b611c38565b005b348015610a7057600080fd5b50610a79611d0f565b005b348015610a8757600080fd5b50610a90611e3a565b604051610a9d91906136a1565b60405180910390f35b348015610ab257600080fd5b50610acd6004803603810190610ac8919061379f565b611e4d565b005b348015610adb57600080fd5b50610ae4611ee6565b604051610af191906135ce565b60405180910390f35b348015610b0657600080fd5b50610b216004803603810190610b1c9190613746565b611f0c565b005b348015610b2f57600080fd5b50610b4a6004803603810190610b459190613746565b612003565b005b348015610b5857600080fd5b50610b616120c3565b604051610b6e91906136a1565b60405180910390f35b60115481565b606060018054610b8c90613928565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb890613928565b8015610c055780601f10610bda57610100808354040283529160200191610c05565b820191906000526020600020905b815481529060010190602001808311610be857829003601f168201915b5050505050905090565b601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610c6d610c666120d6565b84846120de565b6001905092915050565b6000600e54905090565b6000610c8e8484846122a7565b50610d5084610c9b6120d6565b610d4b8560405180606001604052806028815260200161442460289139600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d016120d6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128699092919063ffffffff16565b6120de565b600190509392505050565b60055481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610dfe610db37f000000000000000000000000000000000000000000000000000000000000000061129d565b610df0610ddf7f000000000000000000000000000000000000000000000000000000000000000061129d565b600e546128cd90919063ffffffff16565b6128cd90919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b6000610ec3610e276120d6565b84610ebe8560096000610e386120d6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461291790919063ffffffff16565b6120de565b6001905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b610ef56120d6565b73ffffffffffffffffffffffffffffffffffffffff16610f13611420565b73ffffffffffffffffffffffffffffffffffffffff1614610f69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f60906139a5565b60405180910390fd5b80601260036101000a81548160ff02191690831515021790555050565b610f8e6120d6565b73ffffffffffffffffffffffffffffffffffffffff16610fac611420565b73ffffffffffffffffffffffffffffffffffffffff1614611002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff9906139a5565b60405180910390fd5b81600481905550806005819055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110626120d6565b73ffffffffffffffffffffffffffffffffffffffff16611080611420565b73ffffffffffffffffffffffffffffffffffffffff16146110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd906139a5565b60405180910390fd5b80601260046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111226120d6565b73ffffffffffffffffffffffffffffffffffffffff16611140611420565b73ffffffffffffffffffffffffffffffffffffffff1614611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d906139a5565b60405180910390fd5b80600f8190555050565b601260029054906101000a900460ff1681565b6111bb6120d6565b73ffffffffffffffffffffffffffffffffffffffff166111d9611420565b73ffffffffffffffffffffffffffffffffffffffff161461122f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611226906139a5565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112ee6120d6565b73ffffffffffffffffffffffffffffffffffffffff1661130c611420565b73ffffffffffffffffffffffffffffffffffffffff1614611362576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611359906139a5565b60405180910390fd5b61136c6000612975565b565b6113766120d6565b73ffffffffffffffffffffffffffffffffffffffff16611394611420565b73ffffffffffffffffffffffffffffffffffffffff16146113ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e1906139a5565b60405180910390fd5b8060108190555050565b600f5481565b60105481565b600d6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461145890613928565b80601f016020809104026020016040519081016040528092919081815260200182805461148490613928565b80156114d15780601f106114a6576101008083540402835291602001916114d1565b820191906000526020600020905b8154815290600101906020018083116114b457829003601f168201915b5050505050905090565b600061159e6114e86120d6565b846115998560405180606001604052806025815260200161444c60259139600960006115126120d6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128699092919063ffffffff16565b6120de565b6001905092915050565b6115b06120d6565b73ffffffffffffffffffffffffffffffffffffffff166115ce611420565b73ffffffffffffffffffffffffffffffffffffffff1614611624576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161b906139a5565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061167c6116756120d6565b84846122a7565b506001905092915050565b61168f6120d6565b73ffffffffffffffffffffffffffffffffffffffff166116ad611420565b73ffffffffffffffffffffffffffffffffffffffff1614611703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fa906139a5565b60405180910390fd5b8060118190555050565b6117156120d6565b73ffffffffffffffffffffffffffffffffffffffff16611733611420565b73ffffffffffffffffffffffffffffffffffffffff1614611789576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611780906139a5565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6117ec6120d6565b73ffffffffffffffffffffffffffffffffffffffff1661180a611420565b73ffffffffffffffffffffffffffffffffffffffff1614611860576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611857906139a5565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156119155780600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600c6020528060005260406000206000915054906101000a900460ff1681565b6119416120d6565b73ffffffffffffffffffffffffffffffffffffffff1661195f611420565b73ffffffffffffffffffffffffffffffffffffffff16146119b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ac906139a5565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1683836040516024016119e19291906139c5565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611a6b9190613a35565b6000604051808303816000865af19150503d8060008114611aa8576040519150601f19603f3d011682016040523d82523d6000602084013e611aad565b606091505b5050905080611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae890613a98565b60405180910390fd5b50505050565b611aff6120d6565b73ffffffffffffffffffffffffffffffffffffffff16611b1d611420565b73ffffffffffffffffffffffffffffffffffffffff1614611b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6a906139a5565b60405180910390fd5b81601260006101000a81548160ff02191690831515021790555080601260016101000a81548160ff0219169083151502179055505050565b60045481565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c406120d6565b73ffffffffffffffffffffffffffffffffffffffff16611c5e611420565b73ffffffffffffffffffffffffffffffffffffffff1614611cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cab906139a5565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d176120d6565b73ffffffffffffffffffffffffffffffffffffffff16611d35611420565b73ffffffffffffffffffffffffffffffffffffffff1614611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d82906139a5565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611db190613ade565b60006040518083038185875af1925050503d8060008114611dee576040519150601f19603f3d011682016040523d82523d6000602084013e611df3565b606091505b5050905080611e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2e90613b3f565b60405180910390fd5b50565b601260019054906101000a900460ff1681565b611e556120d6565b73ffffffffffffffffffffffffffffffffffffffff16611e73611420565b73ffffffffffffffffffffffffffffffffffffffff1614611ec9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec0906139a5565b60405180910390fd5b80601260026101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611f146120d6565b73ffffffffffffffffffffffffffffffffffffffff16611f32611420565b73ffffffffffffffffffffffffffffffffffffffff1614611f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7f906139a5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ff7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fee90613bd1565b60405180910390fd5b61200081612975565b50565b61200b6120d6565b73ffffffffffffffffffffffffffffffffffffffff16612029611420565b73ffffffffffffffffffffffffffffffffffffffff161461207f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612076906139a5565b60405180910390fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601260039054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361214d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214490613c63565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b390613cf5565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161229a9190613446565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230e90613d87565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237d90613e19565b60405180910390fd5b600082116123c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c090613eab565b60405180910390fd5b601360149054906101000a900460ff16156123f0576123e9848484612a39565b9050612862565b60006123fb3061129d565b9050600060115482101590508080156124215750601360149054906101000a900460ff16155b80156124775750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561248f5750601260009054906101000a900460ff165b1561249e5761249d82612c0c565b5b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125425750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561255a5750601260029054906101000a900460ff165b156125a557600f548411156125a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259b90613f3d565b60405180910390fd5b5b61262e846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128699092919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061267d8787612cfa565b6126915761268c878787612e65565b612693565b845b9050601260039054906101000a900460ff1680156126fb5750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127605760105461271e826127108961129d565b61291790919063ffffffff16565b111561275f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275690613fa9565b60405180910390fd5b5b6127b281600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461291790919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128529190613446565b60405180910390a3600193505050505b9392505050565b60008383111582906128b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a891906134f1565b60405180910390fd5b50600083856128c09190613ff8565b9050809150509392505050565b600061290f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612869565b905092915050565b6000808284612926919061402c565b90508381101561296b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612962906140ac565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612ac4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128699092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b5982600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461291790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bf99190613446565b60405180910390a3600190509392505050565b6001601360146101000a81548160ff021916908315150217905550601260019054906101000a900460ff1615612c425760115490505b6000479050612c508261308a565b6000612c6582476128cd90919063ffffffff16565b90506000811115612cda57600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612cd8573d6000803e3d6000fd5b505b50506000601360146101000a81548160ff02191690831515021790555050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612d9d5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612dab5760019050612e5f565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e4c5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e5a5760009050612e5f565b600090505b92915050565b600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612eea57612ee3600754612ed56004548661330690919063ffffffff16565b61338090919063ffffffff16565b9050612f69565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f6857612f65600754612f576005548661330690919063ffffffff16565b61338090919063ffffffff16565b90505b5b600081111561306d57612fc481600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461291790919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130649190613446565b60405180910390a35b61308081846128cd90919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff8111156130a7576130a66140cc565b5b6040519080825280602002602001820160405280156130d55781602001602082028036833780820191505090505b50905030816000815181106130ed576130ec6140fb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613194573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b8919061413f565b816001815181106131cc576131cb6140fb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061323330601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120de565b601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613297959493929190614265565b600060405180830381600087803b1580156132b157600080fd5b505af11580156132c5573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516132fa9291906142bf565b60405180910390a15050565b6000808303613318576000905061337a565b6000828461332691906142ef565b90508284826133359190614360565b14613375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161336c90614403565b60405180910390fd5b809150505b92915050565b60006133c283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506133ca565b905092915050565b60008083118290613411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161340891906134f1565b60405180910390fd5b50600083856134209190614360565b9050809150509392505050565b6000819050919050565b6134408161342d565b82525050565b600060208201905061345b6000830184613437565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561349b578082015181840152602081019050613480565b60008484015250505050565b6000601f19601f8301169050919050565b60006134c382613461565b6134cd818561346c565b93506134dd81856020860161347d565b6134e6816134a7565b840191505092915050565b6000602082019050818103600083015261350b81846134b8565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061355861355361354e84613513565b613533565b613513565b9050919050565b600061356a8261353d565b9050919050565b600061357c8261355f565b9050919050565b61358c81613571565b82525050565b60006020820190506135a76000830184613583565b92915050565b60006135b882613513565b9050919050565b6135c8816135ad565b82525050565b60006020820190506135e360008301846135bf565b92915050565b600080fd5b6135f7816135ad565b811461360257600080fd5b50565b600081359050613614816135ee565b92915050565b6136238161342d565b811461362e57600080fd5b50565b6000813590506136408161361a565b92915050565b6000806040838503121561365d5761365c6135e9565b5b600061366b85828601613605565b925050602061367c85828601613631565b9150509250929050565b60008115159050919050565b61369b81613686565b82525050565b60006020820190506136b66000830184613692565b92915050565b6000806000606084860312156136d5576136d46135e9565b5b60006136e386828701613605565b93505060206136f486828701613605565b925050604061370586828701613631565b9150509250925092565b600060ff82169050919050565b6137258161370f565b82525050565b6000602082019050613740600083018461371c565b92915050565b60006020828403121561375c5761375b6135e9565b5b600061376a84828501613605565b91505092915050565b61377c81613686565b811461378757600080fd5b50565b60008135905061379981613773565b92915050565b6000602082840312156137b5576137b46135e9565b5b60006137c38482850161378a565b91505092915050565b600080604083850312156137e3576137e26135e9565b5b60006137f185828601613631565b925050602061380285828601613631565b9150509250929050565b600060208284031215613822576138216135e9565b5b600061383084828501613631565b91505092915050565b600080604083850312156138505761384f6135e9565b5b600061385e85828601613605565b925050602061386f8582860161378a565b9150509250929050565b600080604083850312156138905761388f6135e9565b5b600061389e8582860161378a565b92505060206138af8582860161378a565b9150509250929050565b600080604083850312156138d0576138cf6135e9565b5b60006138de85828601613605565b92505060206138ef85828601613605565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061394057607f821691505b602082108103613953576139526138f9565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061398f60208361346c565b915061399a82613959565b602082019050919050565b600060208201905081810360008301526139be81613982565b9050919050565b60006040820190506139da60008301856135bf565b6139e76020830184613437565b9392505050565b600081519050919050565b600081905092915050565b6000613a0f826139ee565b613a1981856139f9565b9350613a2981856020860161347d565b80840191505092915050565b6000613a418284613a04565b915081905092915050565b7f546f6b656e207061796d656e74206661696c6564000000000000000000000000600082015250565b6000613a8260148361346c565b9150613a8d82613a4c565b602082019050919050565b60006020820190508181036000830152613ab181613a75565b9050919050565b50565b6000613ac86000836139f9565b9150613ad382613ab8565b600082019050919050565b6000613ae982613abb565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000613b2960148361346c565b9150613b3482613af3565b602082019050919050565b60006020820190508181036000830152613b5881613b1c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613bbb60268361346c565b9150613bc682613b5f565b604082019050919050565b60006020820190508181036000830152613bea81613bae565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613c4d60248361346c565b9150613c5882613bf1565b604082019050919050565b60006020820190508181036000830152613c7c81613c40565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cdf60228361346c565b9150613cea82613c83565b604082019050919050565b60006020820190508181036000830152613d0e81613cd2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613d7160258361346c565b9150613d7c82613d15565b604082019050919050565b60006020820190508181036000830152613da081613d64565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613e0360238361346c565b9150613e0e82613da7565b604082019050919050565b60006020820190508181036000830152613e3281613df6565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613e9560298361346c565b9150613ea082613e39565b604082019050919050565b60006020820190508181036000830152613ec481613e88565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000613f2760288361346c565b9150613f3282613ecb565b604082019050919050565b60006020820190508181036000830152613f5681613f1a565b9050919050565b7f4d61782057616c6c6574204c696d697420457863656564656421210000000000600082015250565b6000613f93601b8361346c565b9150613f9e82613f5d565b602082019050919050565b60006020820190508181036000830152613fc281613f86565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006140038261342d565b915061400e8361342d565b925082820390508181111561402657614025613fc9565b5b92915050565b60006140378261342d565b91506140428361342d565b925082820190508082111561405a57614059613fc9565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614096601b8361346c565b91506140a182614060565b602082019050919050565b600060208201905081810360008301526140c581614089565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614139816135ee565b92915050565b600060208284031215614155576141546135e9565b5b60006141638482850161412a565b91505092915050565b6000819050919050565b600061419161418c6141878461416c565b613533565b61342d565b9050919050565b6141a181614176565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141dc816135ad565b82525050565b60006141ee83836141d3565b60208301905092915050565b6000602082019050919050565b6000614212826141a7565b61421c81856141b2565b9350614227836141c3565b8060005b8381101561425857815161423f88826141e2565b975061424a836141fa565b92505060018101905061422b565b5085935050505092915050565b600060a08201905061427a6000830188613437565b6142876020830187614198565b81810360408301526142998186614207565b90506142a860608301856135bf565b6142b56080830184613437565b9695505050505050565b60006040820190506142d46000830185613437565b81810360208301526142e68184614207565b90509392505050565b60006142fa8261342d565b91506143058361342d565b92508282026143138161342d565b9150828204841483151761432a57614329613fc9565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061436b8261342d565b91506143768361342d565b92508261438657614385614331565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006143ed60218361346c565b91506143f882614391565b604082019050919050565b6000602082019050818103600083015261441c816143e0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220dd7ecaf5eed4c7f7ebebc40f2471b37178d9ffe41f21272a3ce4d14f2c84cbac64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102b25760003560e01c8063728d41c911610175578063c867d60b116100dc578063e6b2603b11610095578063f242ab411161006f578063f242ab4114610acf578063f2fde38b14610afa578063f71b9bbf14610b23578063f872858a14610b4c576102b9565b8063e6b2603b14610a64578063e9fd339414610a7b578063ee828db314610aa6576102b9565b8063c867d60b14610944578063cea9d26f14610981578063d4e43fb3146109aa578063d628df9c146109d3578063dd62ed3e146109fe578063df8408fe14610a3b576102b9565b8063a457c2d71161012e578063a457c2d714610826578063a8602fea14610863578063a9059cbb1461088c578063adc0d092146108c9578063ae85ade6146108f2578063c16dd4a41461091b576102b9565b8063728d41c9146107145780637d1db4a51461073d578063807c2d9c146107685780638b42507f146107935780638da5cb5b146107d057806395d89b41146107fb576102b9565b80633ecad271116102195780635c85974f116101d25780635c85974f146106185780635e42358c14610641578063651a89871461066c5780636ddd17131461069557806370a08231146106c0578063715018a6146106fd576102b9565b80633ecad271146104f85780634974d88f1461053557806352f7c9881461055e5780635342acb414610587578063563df32f146105c457806359fac517146105ef576102b9565b806323b872dd1161026b57806323b872dd146103d257806324fcf8cf1461040f57806327c8f8351461043a5780632b112e4914610465578063313ce5671461049057806339509351146104bb576102b9565b80630445b667146102be57806306fdde03146102e95780630758d924146103145780630930907b1461033f578063095ea7b31461036a57806318160ddd146103a7576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610b77565b6040516102e09190613446565b60405180910390f35b3480156102f557600080fd5b506102fe610b7d565b60405161030b91906134f1565b60405180910390f35b34801561032057600080fd5b50610329610c0f565b6040516103369190613592565b60405180910390f35b34801561034b57600080fd5b50610354610c35565b60405161036191906135ce565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c9190613646565b610c59565b60405161039e91906136a1565b60405180910390f35b3480156103b357600080fd5b506103bc610c77565b6040516103c99190613446565b60405180910390f35b3480156103de57600080fd5b506103f960048036038101906103f491906136bc565b610c81565b60405161040691906136a1565b60405180910390f35b34801561041b57600080fd5b50610424610d5b565b6040516104319190613446565b60405180910390f35b34801561044657600080fd5b5061044f610d61565b60405161045c91906135ce565b60405180910390f35b34801561047157600080fd5b5061047a610d85565b6040516104879190613446565b60405180910390f35b34801561049c57600080fd5b506104a5610e03565b6040516104b2919061372b565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd9190613646565b610e1a565b6040516104ef91906136a1565b60405180910390f35b34801561050457600080fd5b5061051f600480360381019061051a9190613746565b610ecd565b60405161052c91906136a1565b60405180910390f35b34801561054157600080fd5b5061055c6004803603810190610557919061379f565b610eed565b005b34801561056a57600080fd5b50610585600480360381019061058091906137cc565b610f86565b005b34801561059357600080fd5b506105ae60048036038101906105a99190613746565b611014565b6040516105bb91906136a1565b60405180910390f35b3480156105d057600080fd5b506105d9611034565b6040516105e691906135ce565b60405180910390f35b3480156105fb57600080fd5b5061061660048036038101906106119190613746565b61105a565b005b34801561062457600080fd5b5061063f600480360381019061063a919061380c565b61111a565b005b34801561064d57600080fd5b506106566111a0565b60405161066391906136a1565b60405180910390f35b34801561067857600080fd5b50610693600480360381019061068e9190613839565b6111b3565b005b3480156106a157600080fd5b506106aa61128a565b6040516106b791906136a1565b60405180910390f35b3480156106cc57600080fd5b506106e760048036038101906106e29190613746565b61129d565b6040516106f49190613446565b60405180910390f35b34801561070957600080fd5b506107126112e6565b005b34801561072057600080fd5b5061073b6004803603810190610736919061380c565b61136e565b005b34801561074957600080fd5b506107526113f4565b60405161075f9190613446565b60405180910390f35b34801561077457600080fd5b5061077d6113fa565b60405161078a9190613446565b60405180910390f35b34801561079f57600080fd5b506107ba60048036038101906107b59190613746565b611400565b6040516107c791906136a1565b60405180910390f35b3480156107dc57600080fd5b506107e5611420565b6040516107f291906135ce565b60405180910390f35b34801561080757600080fd5b50610810611449565b60405161081d91906134f1565b60405180910390f35b34801561083257600080fd5b5061084d60048036038101906108489190613646565b6114db565b60405161085a91906136a1565b60405180910390f35b34801561086f57600080fd5b5061088a60048036038101906108859190613746565b6115a8565b005b34801561089857600080fd5b506108b360048036038101906108ae9190613646565b611668565b6040516108c091906136a1565b60405180910390f35b3480156108d557600080fd5b506108f060048036038101906108eb919061380c565b611687565b005b3480156108fe57600080fd5b5061091960048036038101906109149190613839565b61170d565b005b34801561092757600080fd5b50610942600480360381019061093d9190613839565b6117e4565b005b34801561095057600080fd5b5061096b60048036038101906109669190613746565b611919565b60405161097891906136a1565b60405180910390f35b34801561098d57600080fd5b506109a860048036038101906109a391906136bc565b611939565b005b3480156109b657600080fd5b506109d160048036038101906109cc9190613879565b611af7565b005b3480156109df57600080fd5b506109e8611bab565b6040516109f59190613446565b60405180910390f35b348015610a0a57600080fd5b50610a256004803603810190610a2091906138b9565b611bb1565b604051610a329190613446565b60405180910390f35b348015610a4757600080fd5b50610a626004803603810190610a5d9190613839565b611c38565b005b348015610a7057600080fd5b50610a79611d0f565b005b348015610a8757600080fd5b50610a90611e3a565b604051610a9d91906136a1565b60405180910390f35b348015610ab257600080fd5b50610acd6004803603810190610ac8919061379f565b611e4d565b005b348015610adb57600080fd5b50610ae4611ee6565b604051610af191906135ce565b60405180910390f35b348015610b0657600080fd5b50610b216004803603810190610b1c9190613746565b611f0c565b005b348015610b2f57600080fd5b50610b4a6004803603810190610b459190613746565b612003565b005b348015610b5857600080fd5b50610b616120c3565b604051610b6e91906136a1565b60405180910390f35b60115481565b606060018054610b8c90613928565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb890613928565b8015610c055780601f10610bda57610100808354040283529160200191610c05565b820191906000526020600020905b815481529060010190602001808311610be857829003601f168201915b5050505050905090565b601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610c6d610c666120d6565b84846120de565b6001905092915050565b6000600e54905090565b6000610c8e8484846122a7565b50610d5084610c9b6120d6565b610d4b8560405180606001604052806028815260200161442460289139600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d016120d6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128699092919063ffffffff16565b6120de565b600190509392505050565b60055481565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000610dfe610db37f000000000000000000000000000000000000000000000000000000000000000061129d565b610df0610ddf7f000000000000000000000000000000000000000000000000000000000000dead61129d565b600e546128cd90919063ffffffff16565b6128cd90919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b6000610ec3610e276120d6565b84610ebe8560096000610e386120d6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461291790919063ffffffff16565b6120de565b6001905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b610ef56120d6565b73ffffffffffffffffffffffffffffffffffffffff16610f13611420565b73ffffffffffffffffffffffffffffffffffffffff1614610f69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f60906139a5565b60405180910390fd5b80601260036101000a81548160ff02191690831515021790555050565b610f8e6120d6565b73ffffffffffffffffffffffffffffffffffffffff16610fac611420565b73ffffffffffffffffffffffffffffffffffffffff1614611002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff9906139a5565b60405180910390fd5b81600481905550806005819055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110626120d6565b73ffffffffffffffffffffffffffffffffffffffff16611080611420565b73ffffffffffffffffffffffffffffffffffffffff16146110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd906139a5565b60405180910390fd5b80601260046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111226120d6565b73ffffffffffffffffffffffffffffffffffffffff16611140611420565b73ffffffffffffffffffffffffffffffffffffffff1614611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d906139a5565b60405180910390fd5b80600f8190555050565b601260029054906101000a900460ff1681565b6111bb6120d6565b73ffffffffffffffffffffffffffffffffffffffff166111d9611420565b73ffffffffffffffffffffffffffffffffffffffff161461122f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611226906139a5565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112ee6120d6565b73ffffffffffffffffffffffffffffffffffffffff1661130c611420565b73ffffffffffffffffffffffffffffffffffffffff1614611362576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611359906139a5565b60405180910390fd5b61136c6000612975565b565b6113766120d6565b73ffffffffffffffffffffffffffffffffffffffff16611394611420565b73ffffffffffffffffffffffffffffffffffffffff16146113ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e1906139a5565b60405180910390fd5b8060108190555050565b600f5481565b60105481565b600d6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461145890613928565b80601f016020809104026020016040519081016040528092919081815260200182805461148490613928565b80156114d15780601f106114a6576101008083540402835291602001916114d1565b820191906000526020600020905b8154815290600101906020018083116114b457829003601f168201915b5050505050905090565b600061159e6114e86120d6565b846115998560405180606001604052806025815260200161444c60259139600960006115126120d6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128699092919063ffffffff16565b6120de565b6001905092915050565b6115b06120d6565b73ffffffffffffffffffffffffffffffffffffffff166115ce611420565b73ffffffffffffffffffffffffffffffffffffffff1614611624576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161b906139a5565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061167c6116756120d6565b84846122a7565b506001905092915050565b61168f6120d6565b73ffffffffffffffffffffffffffffffffffffffff166116ad611420565b73ffffffffffffffffffffffffffffffffffffffff1614611703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fa906139a5565b60405180910390fd5b8060118190555050565b6117156120d6565b73ffffffffffffffffffffffffffffffffffffffff16611733611420565b73ffffffffffffffffffffffffffffffffffffffff1614611789576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611780906139a5565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6117ec6120d6565b73ffffffffffffffffffffffffffffffffffffffff1661180a611420565b73ffffffffffffffffffffffffffffffffffffffff1614611860576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611857906139a5565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156119155780600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600c6020528060005260406000206000915054906101000a900460ff1681565b6119416120d6565b73ffffffffffffffffffffffffffffffffffffffff1661195f611420565b73ffffffffffffffffffffffffffffffffffffffff16146119b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ac906139a5565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1683836040516024016119e19291906139c5565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611a6b9190613a35565b6000604051808303816000865af19150503d8060008114611aa8576040519150601f19603f3d011682016040523d82523d6000602084013e611aad565b606091505b5050905080611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae890613a98565b60405180910390fd5b50505050565b611aff6120d6565b73ffffffffffffffffffffffffffffffffffffffff16611b1d611420565b73ffffffffffffffffffffffffffffffffffffffff1614611b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6a906139a5565b60405180910390fd5b81601260006101000a81548160ff02191690831515021790555080601260016101000a81548160ff0219169083151502179055505050565b60045481565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611c406120d6565b73ffffffffffffffffffffffffffffffffffffffff16611c5e611420565b73ffffffffffffffffffffffffffffffffffffffff1614611cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cab906139a5565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d176120d6565b73ffffffffffffffffffffffffffffffffffffffff16611d35611420565b73ffffffffffffffffffffffffffffffffffffffff1614611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d82906139a5565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611db190613ade565b60006040518083038185875af1925050503d8060008114611dee576040519150601f19603f3d011682016040523d82523d6000602084013e611df3565b606091505b5050905080611e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2e90613b3f565b60405180910390fd5b50565b601260019054906101000a900460ff1681565b611e556120d6565b73ffffffffffffffffffffffffffffffffffffffff16611e73611420565b73ffffffffffffffffffffffffffffffffffffffff1614611ec9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec0906139a5565b60405180910390fd5b80601260026101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611f146120d6565b73ffffffffffffffffffffffffffffffffffffffff16611f32611420565b73ffffffffffffffffffffffffffffffffffffffff1614611f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7f906139a5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ff7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fee90613bd1565b60405180910390fd5b61200081612975565b50565b61200b6120d6565b73ffffffffffffffffffffffffffffffffffffffff16612029611420565b73ffffffffffffffffffffffffffffffffffffffff161461207f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612076906139a5565b60405180910390fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601260039054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361214d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214490613c63565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b390613cf5565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161229a9190613446565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230e90613d87565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237d90613e19565b60405180910390fd5b600082116123c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c090613eab565b60405180910390fd5b601360149054906101000a900460ff16156123f0576123e9848484612a39565b9050612862565b60006123fb3061129d565b9050600060115482101590508080156124215750601360149054906101000a900460ff16155b80156124775750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561248f5750601260009054906101000a900460ff165b1561249e5761249d82612c0c565b5b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125425750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561255a5750601260029054906101000a900460ff165b156125a557600f548411156125a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259b90613f3d565b60405180910390fd5b5b61262e846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128699092919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061267d8787612cfa565b6126915761268c878787612e65565b612693565b845b9050601260039054906101000a900460ff1680156126fb5750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127605760105461271e826127108961129d565b61291790919063ffffffff16565b111561275f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275690613fa9565b60405180910390fd5b5b6127b281600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461291790919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128529190613446565b60405180910390a3600193505050505b9392505050565b60008383111582906128b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a891906134f1565b60405180910390fd5b50600083856128c09190613ff8565b9050809150509392505050565b600061290f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612869565b905092915050565b6000808284612926919061402c565b90508381101561296b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612962906140ac565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612ac4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128699092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b5982600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461291790919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bf99190613446565b60405180910390a3600190509392505050565b6001601360146101000a81548160ff021916908315150217905550601260019054906101000a900460ff1615612c425760115490505b6000479050612c508261308a565b6000612c6582476128cd90919063ffffffff16565b90506000811115612cda57600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612cd8573d6000803e3d6000fd5b505b50506000601360146101000a81548160ff02191690831515021790555050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612d9d5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612dab5760019050612e5f565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e4c5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e5a5760009050612e5f565b600090505b92915050565b600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612eea57612ee3600754612ed56004548661330690919063ffffffff16565b61338090919063ffffffff16565b9050612f69565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612f6857612f65600754612f576005548661330690919063ffffffff16565b61338090919063ffffffff16565b90505b5b600081111561306d57612fc481600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461291790919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130649190613446565b60405180910390a35b61308081846128cd90919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff8111156130a7576130a66140cc565b5b6040519080825280602002602001820160405280156130d55781602001602082028036833780820191505090505b50905030816000815181106130ed576130ec6140fb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613194573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b8919061413f565b816001815181106131cc576131cb6140fb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061323330601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120de565b601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613297959493929190614265565b600060405180830381600087803b1580156132b157600080fd5b505af11580156132c5573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516132fa9291906142bf565b60405180910390a15050565b6000808303613318576000905061337a565b6000828461332691906142ef565b90508284826133359190614360565b14613375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161336c90614403565b60405180910390fd5b809150505b92915050565b60006133c283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506133ca565b905092915050565b60008083118290613411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161340891906134f1565b60405180910390fd5b50600083856134209190614360565b9050809150509392505050565b6000819050919050565b6134408161342d565b82525050565b600060208201905061345b6000830184613437565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561349b578082015181840152602081019050613480565b60008484015250505050565b6000601f19601f8301169050919050565b60006134c382613461565b6134cd818561346c565b93506134dd81856020860161347d565b6134e6816134a7565b840191505092915050565b6000602082019050818103600083015261350b81846134b8565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061355861355361354e84613513565b613533565b613513565b9050919050565b600061356a8261353d565b9050919050565b600061357c8261355f565b9050919050565b61358c81613571565b82525050565b60006020820190506135a76000830184613583565b92915050565b60006135b882613513565b9050919050565b6135c8816135ad565b82525050565b60006020820190506135e360008301846135bf565b92915050565b600080fd5b6135f7816135ad565b811461360257600080fd5b50565b600081359050613614816135ee565b92915050565b6136238161342d565b811461362e57600080fd5b50565b6000813590506136408161361a565b92915050565b6000806040838503121561365d5761365c6135e9565b5b600061366b85828601613605565b925050602061367c85828601613631565b9150509250929050565b60008115159050919050565b61369b81613686565b82525050565b60006020820190506136b66000830184613692565b92915050565b6000806000606084860312156136d5576136d46135e9565b5b60006136e386828701613605565b93505060206136f486828701613605565b925050604061370586828701613631565b9150509250925092565b600060ff82169050919050565b6137258161370f565b82525050565b6000602082019050613740600083018461371c565b92915050565b60006020828403121561375c5761375b6135e9565b5b600061376a84828501613605565b91505092915050565b61377c81613686565b811461378757600080fd5b50565b60008135905061379981613773565b92915050565b6000602082840312156137b5576137b46135e9565b5b60006137c38482850161378a565b91505092915050565b600080604083850312156137e3576137e26135e9565b5b60006137f185828601613631565b925050602061380285828601613631565b9150509250929050565b600060208284031215613822576138216135e9565b5b600061383084828501613631565b91505092915050565b600080604083850312156138505761384f6135e9565b5b600061385e85828601613605565b925050602061386f8582860161378a565b9150509250929050565b600080604083850312156138905761388f6135e9565b5b600061389e8582860161378a565b92505060206138af8582860161378a565b9150509250929050565b600080604083850312156138d0576138cf6135e9565b5b60006138de85828601613605565b92505060206138ef85828601613605565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061394057607f821691505b602082108103613953576139526138f9565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061398f60208361346c565b915061399a82613959565b602082019050919050565b600060208201905081810360008301526139be81613982565b9050919050565b60006040820190506139da60008301856135bf565b6139e76020830184613437565b9392505050565b600081519050919050565b600081905092915050565b6000613a0f826139ee565b613a1981856139f9565b9350613a2981856020860161347d565b80840191505092915050565b6000613a418284613a04565b915081905092915050565b7f546f6b656e207061796d656e74206661696c6564000000000000000000000000600082015250565b6000613a8260148361346c565b9150613a8d82613a4c565b602082019050919050565b60006020820190508181036000830152613ab181613a75565b9050919050565b50565b6000613ac86000836139f9565b9150613ad382613ab8565b600082019050919050565b6000613ae982613abb565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000613b2960148361346c565b9150613b3482613af3565b602082019050919050565b60006020820190508181036000830152613b5881613b1c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613bbb60268361346c565b9150613bc682613b5f565b604082019050919050565b60006020820190508181036000830152613bea81613bae565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613c4d60248361346c565b9150613c5882613bf1565b604082019050919050565b60006020820190508181036000830152613c7c81613c40565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cdf60228361346c565b9150613cea82613c83565b604082019050919050565b60006020820190508181036000830152613d0e81613cd2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613d7160258361346c565b9150613d7c82613d15565b604082019050919050565b60006020820190508181036000830152613da081613d64565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613e0360238361346c565b9150613e0e82613da7565b604082019050919050565b60006020820190508181036000830152613e3281613df6565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613e9560298361346c565b9150613ea082613e39565b604082019050919050565b60006020820190508181036000830152613ec481613e88565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000613f2760288361346c565b9150613f3282613ecb565b604082019050919050565b60006020820190508181036000830152613f5681613f1a565b9050919050565b7f4d61782057616c6c6574204c696d697420457863656564656421210000000000600082015250565b6000613f93601b8361346c565b9150613f9e82613f5d565b602082019050919050565b60006020820190508181036000830152613fc281613f86565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006140038261342d565b915061400e8361342d565b925082820390508181111561402657614025613fc9565b5b92915050565b60006140378261342d565b91506140428361342d565b925082820190508082111561405a57614059613fc9565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614096601b8361346c565b91506140a182614060565b602082019050919050565b600060208201905081810360008301526140c581614089565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614139816135ee565b92915050565b600060208284031215614155576141546135e9565b5b60006141638482850161412a565b91505092915050565b6000819050919050565b600061419161418c6141878461416c565b613533565b61342d565b9050919050565b6141a181614176565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141dc816135ad565b82525050565b60006141ee83836141d3565b60208301905092915050565b6000602082019050919050565b6000614212826141a7565b61421c81856141b2565b9350614227836141c3565b8060005b8381101561425857815161423f88826141e2565b975061424a836141fa565b92505060018101905061422b565b5085935050505092915050565b600060a08201905061427a6000830188613437565b6142876020830187614198565b81810360408301526142998186614207565b90506142a860608301856135bf565b6142b56080830184613437565b9695505050505050565b60006040820190506142d46000830185613437565b81810360208301526142e68184614207565b90509392505050565b60006142fa8261342d565b91506143058361342d565b92508282026143138161342d565b9150828204841483151761432a57614329613fc9565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061436b8261342d565b91506143768361342d565b92508261438657614385614331565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006143ed60218361346c565b91506143f882614391565b604082019050919050565b6000602082019050818103600083015261441c816143e0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220dd7ecaf5eed4c7f7ebebc40f2471b37178d9ffe41f21272a3ce4d14f2c84cbac64736f6c63430008130033

Deployed Bytecode Sourcemap

7077:11899:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8254:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10164:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8473:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7384:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11502:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10441:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12276:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7515:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7296:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10835:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10350:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10999:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7866:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17397:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17133:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7809:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7559:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18755:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18018:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8390:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17640:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8316:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10549:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1837:94;;;;;;;;;;;;;:::i;:::-;;17904:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8100:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8176:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7977:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1528:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10255;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11225:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18131:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12101:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18640:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17776:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18245:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7918:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16853:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18457:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7474:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10680:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17510:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16667:178;;;;;;;;;;;;;:::i;:::-;;8353:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17291:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8511:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1939:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18878:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8429:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8254:53;;;;:::o;10164:83::-;10201:13;10234:5;10227:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10164:83;:::o;8473:31::-;;;;;;;;;;;;;:::o;7384:81::-;;;:::o;11502:161::-;11577:4;11594:39;11603:12;:10;:12::i;:::-;11617:7;11626:6;11594:8;:39::i;:::-;11651:4;11644:11;;11502:161;;;;:::o;10441:100::-;10494:7;10521:12;;10514:19;;10441:100;:::o;12276:313::-;12374:4;12391:36;12401:6;12409:9;12420:6;12391:9;:36::i;:::-;;12438:121;12447:6;12455:12;:10;:12::i;:::-;12469:89;12507:6;12469:89;;;;;;;;;;;;;;;;;:11;:19;12481:6;12469:19;;;;;;;;;;;;;;;:33;12489:12;:10;:12::i;:::-;12469:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;12438:8;:121::i;:::-;12577:4;12570:11;;12276:313;;;;;:::o;7515:35::-;;;;:::o;7296:81::-;;;:::o;10835:156::-;10888:7;10915:68;10960:22;10970:11;10960:9;:22::i;:::-;10915:40;10932:22;10942:11;10932:9;:22::i;:::-;10915:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;10908:75;;10835:156;:::o;10350:83::-;10391:5;10416:9;;;;;;;;;;;10409:16;;10350:83;:::o;10999:218::-;11087:4;11104:83;11113:12;:10;:12::i;:::-;11127:7;11136:50;11175:10;11136:11;:25;11148:12;:10;:12::i;:::-;11136:25;;;;;;;;;;;;;;;:34;11162:7;11136:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11104:8;:83::i;:::-;11205:4;11198:11;;10999:218;;;;:::o;7866:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;17397:105::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17487:7:::1;17468:16;;:26;;;;;;;;;;;;;;;;;;17397:105:::0;:::o;17133:150::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17230:7:::1;17212:15;:25;;;;17267:8;17248:16;:27;;;;17133:150:::0;;:::o;7809:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;7559:77::-;;;;;;;;;;;;;:::o;18755:115::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18854:7:::1;18827:9;;:35;;;;;;;;;;;;;;;;;;18755:115:::0;:::o;18018:101::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18103:8:::1;18088:12;:23;;;;18018:101:::0;:::o;8390:32::-;;;;;;;;;;;;;:::o;17640:128::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17753:7:::1;17725:19;:25;17745:4;17725:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;17640:128:::0;;:::o;8316:30::-;;;;;;;;;;;;;:::o;10549:123::-;10615:7;10641:9;:18;10651:7;10641:18;;;;;;;;;;;;;;;;10634:25;;10549:123;;;:::o;1837:94::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1902:21:::1;1920:1;1902:9;:21::i;:::-;1837:94::o:0;17904:106::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17994:8:::1;17981:10;:21;;;;17904:106:::0;:::o;8100:59::-;;;;:::o;8176:56::-;;;;:::o;7977:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;1528:87::-;1574:7;1601:6;;;;;;;;;;;1594:13;;1528:87;:::o;10255:::-;10294:13;10327:7;10320:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10255:87;:::o;11225:269::-;11318:4;11335:129;11344:12;:10;:12::i;:::-;11358:7;11367:96;11406:15;11367:96;;;;;;;;;;;;;;;;;:11;:25;11379:12;:10;:12::i;:::-;11367:25;;;;;;;;;;;;;;;:34;11393:7;11367:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11335:8;:129::i;:::-;11482:4;11475:11;;11225:269;;;;:::o;18131:106::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18219:10:::1;18208:8;;:21;;;;;;;;;;;;;;;;;;18131:106:::0;:::o;12101:167::-;12179:4;12196:42;12206:12;:10;:12::i;:::-;12220:9;12231:6;12196:9;:42::i;:::-;;12256:4;12249:11;;12101:167;;;;:::o;18640:107::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18729:10:::1;18713:13;:26;;;;18640:107:::0;:::o;17776:120::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17881:7:::1;17857:15;:21;17873:4;17857:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;17776:120:::0;;:::o;18245:204::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18349:7:::1;18327:12;:19;18340:5;18327:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;18370:7;18367:75;;;18423:7;18394:19;:26;18414:5;18394:26;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;18367:75;18245:204:::0;;:::o;7918:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;16853:272::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16953:12:::1;16979:6;16971:20;;17046:9;17057:7;16992:73;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16971:95;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16952:114;;;17085:7;17077:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;16941:184;16853:272:::0;;;:::o;18457:175::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18583:8:::1;18569:11;;:22;;;;;;;;;;;;;;;;;;18616:8;18602:11;;:22;;;;;;;;;;;;;;;;;;18457:175:::0;;:::o;7474:34::-;;;;:::o;10680:143::-;10761:7;10788:11;:18;10800:5;10788:18;;;;;;;;;;;;;;;:27;10807:7;10788:27;;;;;;;;;;;;;;;;10781:34;;10680:143;;;;:::o;17510:122::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17617:7:::1;17591:17;:23;17609:4;17591:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;17510:122:::0;;:::o;16667:178::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16722:7:::1;16742:10;16734:24;;16766:21;16734:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16721:71;;;16811:2;16803:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;16709:136;16667:178::o:0;8353:30::-;;;;;;;;;;;;;:::o;17291:98::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17374:7:::1;17358:13;;:23;;;;;;;;;;;;;;;;;;17291:98:::0;:::o;8511:22::-;;;;;;;;;;;;;:::o;1939:229::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2062:1:::1;2042:22;;:8;:22;;::::0;2020:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2141:19;2151:8;2141:9;:19::i;:::-;1939:229:::0;:::o;18878:91::-;1760:12;:10;:12::i;:::-;1749:23;;:7;:5;:7::i;:::-;:23;;;1741:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18956:5:::1;18946:7;;:15;;;;;;;;;;;;;;;;;;18878:91:::0;:::o;8429:35::-;;;;;;;;;;;;;:::o;95:98::-;148:7;175:10;168:17;;95:98;:::o;11671:337::-;11781:1;11764:19;;:5;:19;;;11756:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11862:1;11843:21;;:7;:21;;;11835:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11946:6;11916:11;:18;11928:5;11916:18;;;;;;;;;;;;;;;:27;11935:7;11916:27;;;;;;;;;;;;;;;:36;;;;11984:7;11968:32;;11977:5;11968:32;;;11993:6;11968:32;;;;;;:::i;:::-;;;;;;;;11671:337;;;:::o;12597:1578::-;12684:4;12729:1;12711:20;;:6;:20;;;12703:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12813:1;12792:23;;:9;:23;;;12784:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12883:1;12874:6;:10;12866:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12951:6;;;;;;;;;;;12947:1219;;;12981:41;12996:6;13004:9;13015:6;12981:14;:41::i;:::-;12974:48;;;;12947:1219;13066:28;13097:24;13115:4;13097:9;:24::i;:::-;13066:55;;13136:28;13191:13;;13167:20;:37;;13136:68;;13225:23;:34;;;;;13253:6;;;;;;;;;;;13252:7;13225:34;:59;;;;;13264:12;:20;13277:6;13264:20;;;;;;;;;;;;;;;;;;;;;;;;;13263:21;13225:59;:74;;;;;13288:11;;;;;;;;;;;13225:74;13221:145;;;13320:30;13329:20;13320:8;:30::i;:::-;13221:145;13386:15;:23;13402:6;13386:23;;;;;;;;;;;;;;;;;;;;;;;;;13385:24;:55;;;;;13414:15;:26;13430:9;13414:26;;;;;;;;;;;;;;;;;;;;;;;;;13413:27;13385:55;:72;;;;;13444:13;;;;;;;;;;;13385:72;13382:187;;;13496:12;;13486:6;:22;;13478:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;13382:187;13618:53;13640:6;13618:53;;;;;;;;;;;;;;;;;:9;:17;13628:6;13618:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;13598:9;:17;13608:6;13598:17;;;;;;;;;;;;;;;:73;;;;13688:19;13710:34;13727:6;13734:9;13710:16;:34::i;:::-;:80;;13756:34;13764:6;13772:9;13783:6;13756:7;:34::i;:::-;13710:80;;;13747:6;13710:80;13688:102;;13810:16;;;;;;;;;;;:51;;;;;13831:19;:30;13851:9;13831:30;;;;;;;;;;;;;;;;;;;;;;;;;13830:31;13810:51;13807:181;;;13931:10;;13890:37;13915:11;13890:20;13900:9;13890;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;13882:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;13807:181;14027:37;14052:11;14027:9;:20;14037:9;14027:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;14004:9;:20;14014:9;14004:20;;;;;;;;;;;;;;;:60;;;;14103:9;14086:40;;14095:6;14086:40;;;14114:11;14086:40;;;;;;:::i;:::-;;;;;;;;14148:4;14141:11;;;;;12597:1578;;;;;;:::o;2715:192::-;2801:7;2834:1;2829;:6;;2837:12;2821:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2861:9;2877:1;2873;:5;;;;:::i;:::-;2861:17;;2898:1;2891:8;;;2715:192;;;;;:::o;2571:136::-;2629:7;2656:43;2660:1;2663;2656:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2649:50;;2571:136;;;;:::o;2382:181::-;2440:7;2460:9;2476:1;2472;:5;;;;:::i;:::-;2460:17;;2501:1;2496;:6;;2488:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2554:1;2547:8;;;2382:181;;;;:::o;2176:173::-;2232:16;2251:6;;;;;;;;;;;2232:25;;2277:8;2268:6;;:17;;;;;;;;;;;;;;;;;;2332:8;2301:40;;2322:8;2301:40;;;;;;;;;;;;2221:128;2176:173;:::o;14183:330::-;14276:4;14313:53;14335:6;14313:53;;;;;;;;;;;;;;;;;:9;:17;14323:6;14313:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14293:9;:17;14303:6;14293:17;;;;;;;;;;;;;;;:73;;;;14400:32;14425:6;14400:9;:20;14410:9;14400:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14377:9;:20;14387:9;14377:20;;;;;;;;;;;;;;;:55;;;;14465:9;14448:35;;14457:6;14448:35;;;14476:6;14448:35;;;;;;:::i;:::-;;;;;;;;14501:4;14494:11;;14183:330;;;;;:::o;15618:385::-;8602:4;8593:6;;:13;;;;;;;;;;;;;;;;;;15692:11:::1;;;;;;;;;;;15689:47;;;15723:13;;15705:31;;15689:47;15749:22;15774:21;15749:46;;15806:33;15823:15;15806:16;:33::i;:::-;15850:22;15875:41;15901:14;15875:21;:25;;:41;;;;:::i;:::-;15850:66;;15948:1;15931:14;:18;15928:65;;;15959:8;;;;;;;;;;;15951:26;;:42;15978:14;15951:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15928:65;15676:327;;8638:5:::0;8629:6;;:14;;;;;;;;;;;;;;;;;;15618:385;:::o;14525:369::-;14609:4;14629:17;:25;14647:6;14629:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;14658:17;:28;14676:9;14658:28;;;;;;;;;;;;;;;;;;;;;;;;;14629:57;14626:261;;;14710:4;14703:11;;;;14626:261;14745:12;:20;14758:6;14745:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;14769:12;:23;14782:9;14769:23;;;;;;;;;;;;;;;;;;;;;;;;;14745:47;14741:146;;;14816:5;14809:12;;;;14741:146;14870:5;14863:12;;14525:369;;;;;:::o;14902:708::-;14988:7;15018:14;15075:12;:20;15088:6;15075:20;;;;;;;;;;;;;;;;;;;;;;;;;15072:264;;;15129:47;15161:14;;15129:27;15140:15;;15129:6;:10;;:27;;;;:::i;:::-;:31;;:47;;;;:::i;:::-;15117:59;;15072:264;;;15215:12;:23;15228:9;15215:23;;;;;;;;;;;;;;;;;;;;;;;;;15212:124;;;15272:48;15305:14;;15272:28;15283:16;;15272:6;:10;;:28;;;;:::i;:::-;:32;;:48;;;;:::i;:::-;15260:60;;15212:124;15072:264;15367:1;15355:9;:13;15352:185;;;15416:39;15445:9;15416;:24;15434:4;15416:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;15389:9;:24;15407:4;15389:24;;;;;;;;;;;;;;;:66;;;;15504:4;15479:42;;15488:6;15479:42;;;15511:9;15479:42;;;;;;:::i;:::-;;;;;;;;15352:185;15560:21;15571:9;15560:6;:10;;:21;;;;:::i;:::-;15553:28;;;14902:708;;;;;:::o;16011:648::-;16137:21;16175:1;16161:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16137:40;;16206:4;16188;16193:1;16188:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16232:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16222:4;16227:1;16222:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;16261:56;16278:4;16293:9;;;;;;;;;;;16305:11;16261:8;:56::i;:::-;16356:9;;;;;;;;;;;:60;;;16431:11;16457:1;16501:4;16528;16564:15;16356:234;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16616:35;16633:11;16646:4;16616:35;;;;;;;:::i;:::-;;;;;;;;16066:593;16011:648;:::o;2915:250::-;2973:7;3002:1;2997;:6;2993:47;;3027:1;3020:8;;;;2993:47;3052:9;3068:1;3064;:5;;;;:::i;:::-;3052:17;;3097:1;3092;3088;:5;;;;:::i;:::-;:10;3080:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3156:1;3149:8;;;2915:250;;;;;:::o;3173:132::-;3231:7;3258:39;3262:1;3265;3258:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3251:46;;3173:132;;;;:::o;3313:278::-;3399:7;3431:1;3427;:5;3434:12;3419:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3458:9;3474:1;3470;:5;;;;:::i;:::-;3458:17;;3582:1;3575:8;;;3313:278;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:126::-;1821:7;1861:42;1854:5;1850:54;1839:65;;1784:126;;;:::o;1916:60::-;1944:3;1965:5;1958:12;;1916:60;;;:::o;1982:142::-;2032:9;2065:53;2083:34;2092:24;2110:5;2092:24;:::i;:::-;2083:34;:::i;:::-;2065:53;:::i;:::-;2052:66;;1982:142;;;:::o;2130:126::-;2180:9;2213:37;2244:5;2213:37;:::i;:::-;2200:50;;2130:126;;;:::o;2262:148::-;2334:9;2367:37;2398:5;2367:37;:::i;:::-;2354:50;;2262:148;;;:::o;2416:175::-;2525:59;2578:5;2525:59;:::i;:::-;2520:3;2513:72;2416:175;;:::o;2597:266::-;2712:4;2750:2;2739:9;2735:18;2727:26;;2763:93;2853:1;2842:9;2838:17;2829:6;2763:93;:::i;:::-;2597:266;;;;:::o;2869:96::-;2906:7;2935:24;2953:5;2935:24;:::i;:::-;2924:35;;2869:96;;;:::o;2971:118::-;3058:24;3076:5;3058:24;:::i;:::-;3053:3;3046:37;2971:118;;:::o;3095:222::-;3188:4;3226:2;3215:9;3211:18;3203:26;;3239:71;3307:1;3296:9;3292:17;3283:6;3239:71;:::i;:::-;3095:222;;;;:::o;3404:117::-;3513:1;3510;3503:12;3650:122;3723:24;3741:5;3723:24;:::i;:::-;3716:5;3713:35;3703:63;;3762:1;3759;3752:12;3703:63;3650:122;:::o;3778:139::-;3824:5;3862:6;3849:20;3840:29;;3878:33;3905:5;3878:33;:::i;:::-;3778:139;;;;:::o;3923:122::-;3996:24;4014:5;3996:24;:::i;:::-;3989:5;3986:35;3976:63;;4035:1;4032;4025:12;3976:63;3923:122;:::o;4051:139::-;4097:5;4135:6;4122:20;4113:29;;4151:33;4178:5;4151:33;:::i;:::-;4051:139;;;;:::o;4196:474::-;4264:6;4272;4321:2;4309:9;4300:7;4296:23;4292:32;4289:119;;;4327:79;;:::i;:::-;4289:119;4447:1;4472:53;4517:7;4508:6;4497:9;4493:22;4472:53;:::i;:::-;4462:63;;4418:117;4574:2;4600:53;4645:7;4636:6;4625:9;4621:22;4600:53;:::i;:::-;4590:63;;4545:118;4196:474;;;;;:::o;4676:90::-;4710:7;4753:5;4746:13;4739:21;4728:32;;4676:90;;;:::o;4772:109::-;4853:21;4868:5;4853:21;:::i;:::-;4848:3;4841:34;4772:109;;:::o;4887:210::-;4974:4;5012:2;5001:9;4997:18;4989:26;;5025:65;5087:1;5076:9;5072:17;5063:6;5025:65;:::i;:::-;4887:210;;;;:::o;5103:619::-;5180:6;5188;5196;5245:2;5233:9;5224:7;5220:23;5216:32;5213:119;;;5251:79;;:::i;:::-;5213:119;5371:1;5396:53;5441:7;5432:6;5421:9;5417:22;5396:53;:::i;:::-;5386:63;;5342:117;5498:2;5524:53;5569:7;5560:6;5549:9;5545:22;5524:53;:::i;:::-;5514:63;;5469:118;5626:2;5652:53;5697:7;5688:6;5677:9;5673:22;5652:53;:::i;:::-;5642:63;;5597:118;5103:619;;;;;:::o;5728:86::-;5763:7;5803:4;5796:5;5792:16;5781:27;;5728:86;;;:::o;5820:112::-;5903:22;5919:5;5903:22;:::i;:::-;5898:3;5891:35;5820:112;;:::o;5938:214::-;6027:4;6065:2;6054:9;6050:18;6042:26;;6078:67;6142:1;6131:9;6127:17;6118:6;6078:67;:::i;:::-;5938:214;;;;:::o;6158:329::-;6217:6;6266:2;6254:9;6245:7;6241:23;6237:32;6234:119;;;6272:79;;:::i;:::-;6234:119;6392:1;6417:53;6462:7;6453:6;6442:9;6438:22;6417:53;:::i;:::-;6407:63;;6363:117;6158:329;;;;:::o;6493:116::-;6563:21;6578:5;6563:21;:::i;:::-;6556:5;6553:32;6543:60;;6599:1;6596;6589:12;6543:60;6493:116;:::o;6615:133::-;6658:5;6696:6;6683:20;6674:29;;6712:30;6736:5;6712:30;:::i;:::-;6615:133;;;;:::o;6754:323::-;6810:6;6859:2;6847:9;6838:7;6834:23;6830:32;6827:119;;;6865:79;;:::i;:::-;6827:119;6985:1;7010:50;7052:7;7043:6;7032:9;7028:22;7010:50;:::i;:::-;7000:60;;6956:114;6754:323;;;;:::o;7083:474::-;7151:6;7159;7208:2;7196:9;7187:7;7183:23;7179:32;7176:119;;;7214:79;;:::i;:::-;7176:119;7334:1;7359:53;7404:7;7395:6;7384:9;7380:22;7359:53;:::i;:::-;7349:63;;7305:117;7461:2;7487:53;7532:7;7523:6;7512:9;7508:22;7487:53;:::i;:::-;7477:63;;7432:118;7083:474;;;;;:::o;7563:329::-;7622:6;7671:2;7659:9;7650:7;7646:23;7642:32;7639:119;;;7677:79;;:::i;:::-;7639:119;7797:1;7822:53;7867:7;7858:6;7847:9;7843:22;7822:53;:::i;:::-;7812:63;;7768:117;7563:329;;;;:::o;7898:468::-;7963:6;7971;8020:2;8008:9;7999:7;7995:23;7991:32;7988:119;;;8026:79;;:::i;:::-;7988:119;8146:1;8171:53;8216:7;8207:6;8196:9;8192:22;8171:53;:::i;:::-;8161:63;;8117:117;8273:2;8299:50;8341:7;8332:6;8321:9;8317:22;8299:50;:::i;:::-;8289:60;;8244:115;7898:468;;;;;:::o;8372:462::-;8434:6;8442;8491:2;8479:9;8470:7;8466:23;8462:32;8459:119;;;8497:79;;:::i;:::-;8459:119;8617:1;8642:50;8684:7;8675:6;8664:9;8660:22;8642:50;:::i;:::-;8632:60;;8588:114;8741:2;8767:50;8809:7;8800:6;8789:9;8785:22;8767:50;:::i;:::-;8757:60;;8712:115;8372:462;;;;;:::o;8840:474::-;8908:6;8916;8965:2;8953:9;8944:7;8940:23;8936:32;8933:119;;;8971:79;;:::i;:::-;8933:119;9091:1;9116:53;9161:7;9152:6;9141:9;9137:22;9116:53;:::i;:::-;9106:63;;9062:117;9218:2;9244:53;9289:7;9280:6;9269:9;9265:22;9244:53;:::i;:::-;9234:63;;9189:118;8840:474;;;;;:::o;9320:180::-;9368:77;9365:1;9358:88;9465:4;9462:1;9455:15;9489:4;9486:1;9479:15;9506:320;9550:6;9587:1;9581:4;9577:12;9567:22;;9634:1;9628:4;9624:12;9655:18;9645:81;;9711:4;9703:6;9699:17;9689:27;;9645:81;9773:2;9765:6;9762:14;9742:18;9739:38;9736:84;;9792:18;;:::i;:::-;9736:84;9557:269;9506:320;;;:::o;9832:182::-;9972:34;9968:1;9960:6;9956:14;9949:58;9832:182;:::o;10020:366::-;10162:3;10183:67;10247:2;10242:3;10183:67;:::i;:::-;10176:74;;10259:93;10348:3;10259:93;:::i;:::-;10377:2;10372:3;10368:12;10361:19;;10020:366;;;:::o;10392:419::-;10558:4;10596:2;10585:9;10581:18;10573:26;;10645:9;10639:4;10635:20;10631:1;10620:9;10616:17;10609:47;10673:131;10799:4;10673:131;:::i;:::-;10665:139;;10392:419;;;:::o;10817:332::-;10938:4;10976:2;10965:9;10961:18;10953:26;;10989:71;11057:1;11046:9;11042:17;11033:6;10989:71;:::i;:::-;11070:72;11138:2;11127:9;11123:18;11114:6;11070:72;:::i;:::-;10817:332;;;;;:::o;11155:98::-;11206:6;11240:5;11234:12;11224:22;;11155:98;;;:::o;11259:147::-;11360:11;11397:3;11382:18;;11259:147;;;;:::o;11412:386::-;11516:3;11544:38;11576:5;11544:38;:::i;:::-;11598:88;11679:6;11674:3;11598:88;:::i;:::-;11591:95;;11695:65;11753:6;11748:3;11741:4;11734:5;11730:16;11695:65;:::i;:::-;11785:6;11780:3;11776:16;11769:23;;11520:278;11412:386;;;;:::o;11804:271::-;11934:3;11956:93;12045:3;12036:6;11956:93;:::i;:::-;11949:100;;12066:3;12059:10;;11804:271;;;;:::o;12081:170::-;12221:22;12217:1;12209:6;12205:14;12198:46;12081:170;:::o;12257:366::-;12399:3;12420:67;12484:2;12479:3;12420:67;:::i;:::-;12413:74;;12496:93;12585:3;12496:93;:::i;:::-;12614:2;12609:3;12605:12;12598:19;;12257:366;;;:::o;12629:419::-;12795:4;12833:2;12822:9;12818:18;12810:26;;12882:9;12876:4;12872:20;12868:1;12857:9;12853:17;12846:47;12910:131;13036:4;12910:131;:::i;:::-;12902:139;;12629:419;;;:::o;13054:114::-;;:::o;13174:398::-;13333:3;13354:83;13435:1;13430:3;13354:83;:::i;:::-;13347:90;;13446:93;13535:3;13446:93;:::i;:::-;13564:1;13559:3;13555:11;13548:18;;13174:398;;;:::o;13578:379::-;13762:3;13784:147;13927:3;13784:147;:::i;:::-;13777:154;;13948:3;13941:10;;13578:379;;;:::o;13963:170::-;14103:22;14099:1;14091:6;14087:14;14080:46;13963:170;:::o;14139:366::-;14281:3;14302:67;14366:2;14361:3;14302:67;:::i;:::-;14295:74;;14378:93;14467:3;14378:93;:::i;:::-;14496:2;14491:3;14487:12;14480:19;;14139:366;;;:::o;14511:419::-;14677:4;14715:2;14704:9;14700:18;14692:26;;14764:9;14758:4;14754:20;14750:1;14739:9;14735:17;14728:47;14792:131;14918:4;14792:131;:::i;:::-;14784:139;;14511:419;;;:::o;14936:225::-;15076:34;15072:1;15064:6;15060:14;15053:58;15145:8;15140:2;15132:6;15128:15;15121:33;14936:225;:::o;15167:366::-;15309:3;15330:67;15394:2;15389:3;15330:67;:::i;:::-;15323:74;;15406:93;15495:3;15406:93;:::i;:::-;15524:2;15519:3;15515:12;15508:19;;15167:366;;;:::o;15539:419::-;15705:4;15743:2;15732:9;15728:18;15720:26;;15792:9;15786:4;15782:20;15778:1;15767:9;15763:17;15756:47;15820:131;15946:4;15820:131;:::i;:::-;15812:139;;15539:419;;;:::o;15964:223::-;16104:34;16100:1;16092:6;16088:14;16081:58;16173:6;16168:2;16160:6;16156:15;16149:31;15964:223;:::o;16193:366::-;16335:3;16356:67;16420:2;16415:3;16356:67;:::i;:::-;16349:74;;16432:93;16521:3;16432:93;:::i;:::-;16550:2;16545:3;16541:12;16534:19;;16193:366;;;:::o;16565:419::-;16731:4;16769:2;16758:9;16754:18;16746:26;;16818:9;16812:4;16808:20;16804:1;16793:9;16789:17;16782:47;16846:131;16972:4;16846:131;:::i;:::-;16838:139;;16565:419;;;:::o;16990:221::-;17130:34;17126:1;17118:6;17114:14;17107:58;17199:4;17194:2;17186:6;17182:15;17175:29;16990:221;:::o;17217:366::-;17359:3;17380:67;17444:2;17439:3;17380:67;:::i;:::-;17373:74;;17456:93;17545:3;17456:93;:::i;:::-;17574:2;17569:3;17565:12;17558:19;;17217:366;;;:::o;17589:419::-;17755:4;17793:2;17782:9;17778:18;17770:26;;17842:9;17836:4;17832:20;17828:1;17817:9;17813:17;17806:47;17870:131;17996:4;17870:131;:::i;:::-;17862:139;;17589:419;;;:::o;18014:224::-;18154:34;18150:1;18142:6;18138:14;18131:58;18223:7;18218:2;18210:6;18206:15;18199:32;18014:224;:::o;18244:366::-;18386:3;18407:67;18471:2;18466:3;18407:67;:::i;:::-;18400:74;;18483:93;18572:3;18483:93;:::i;:::-;18601:2;18596:3;18592:12;18585:19;;18244:366;;;:::o;18616:419::-;18782:4;18820:2;18809:9;18805:18;18797:26;;18869:9;18863:4;18859:20;18855:1;18844:9;18840:17;18833:47;18897:131;19023:4;18897:131;:::i;:::-;18889:139;;18616:419;;;:::o;19041:222::-;19181:34;19177:1;19169:6;19165:14;19158:58;19250:5;19245:2;19237:6;19233:15;19226:30;19041:222;:::o;19269:366::-;19411:3;19432:67;19496:2;19491:3;19432:67;:::i;:::-;19425:74;;19508:93;19597:3;19508:93;:::i;:::-;19626:2;19621:3;19617:12;19610:19;;19269:366;;;:::o;19641:419::-;19807:4;19845:2;19834:9;19830:18;19822:26;;19894:9;19888:4;19884:20;19880:1;19869:9;19865:17;19858:47;19922:131;20048:4;19922:131;:::i;:::-;19914:139;;19641:419;;;:::o;20066:228::-;20206:34;20202:1;20194:6;20190:14;20183:58;20275:11;20270:2;20262:6;20258:15;20251:36;20066:228;:::o;20300:366::-;20442:3;20463:67;20527:2;20522:3;20463:67;:::i;:::-;20456:74;;20539:93;20628:3;20539:93;:::i;:::-;20657:2;20652:3;20648:12;20641:19;;20300:366;;;:::o;20672:419::-;20838:4;20876:2;20865:9;20861:18;20853:26;;20925:9;20919:4;20915:20;20911:1;20900:9;20896:17;20889:47;20953:131;21079:4;20953:131;:::i;:::-;20945:139;;20672:419;;;:::o;21097:227::-;21237:34;21233:1;21225:6;21221:14;21214:58;21306:10;21301:2;21293:6;21289:15;21282:35;21097:227;:::o;21330:366::-;21472:3;21493:67;21557:2;21552:3;21493:67;:::i;:::-;21486:74;;21569:93;21658:3;21569:93;:::i;:::-;21687:2;21682:3;21678:12;21671:19;;21330:366;;;:::o;21702:419::-;21868:4;21906:2;21895:9;21891:18;21883:26;;21955:9;21949:4;21945:20;21941:1;21930:9;21926:17;21919:47;21983:131;22109:4;21983:131;:::i;:::-;21975:139;;21702:419;;;:::o;22127:177::-;22267:29;22263:1;22255:6;22251:14;22244:53;22127:177;:::o;22310:366::-;22452:3;22473:67;22537:2;22532:3;22473:67;:::i;:::-;22466:74;;22549:93;22638:3;22549:93;:::i;:::-;22667:2;22662:3;22658:12;22651:19;;22310:366;;;:::o;22682:419::-;22848:4;22886:2;22875:9;22871:18;22863:26;;22935:9;22929:4;22925:20;22921:1;22910:9;22906:17;22899:47;22963:131;23089:4;22963:131;:::i;:::-;22955:139;;22682:419;;;:::o;23107:180::-;23155:77;23152:1;23145:88;23252:4;23249:1;23242:15;23276:4;23273:1;23266:15;23293:194;23333:4;23353:20;23371:1;23353:20;:::i;:::-;23348:25;;23387:20;23405:1;23387:20;:::i;:::-;23382:25;;23431:1;23428;23424:9;23416:17;;23455:1;23449:4;23446:11;23443:37;;;23460:18;;:::i;:::-;23443:37;23293:194;;;;:::o;23493:191::-;23533:3;23552:20;23570:1;23552:20;:::i;:::-;23547:25;;23586:20;23604:1;23586:20;:::i;:::-;23581:25;;23629:1;23626;23622:9;23615:16;;23650:3;23647:1;23644:10;23641:36;;;23657:18;;:::i;:::-;23641:36;23493:191;;;;:::o;23690:177::-;23830:29;23826:1;23818:6;23814:14;23807:53;23690:177;:::o;23873:366::-;24015:3;24036:67;24100:2;24095:3;24036:67;:::i;:::-;24029:74;;24112:93;24201:3;24112:93;:::i;:::-;24230:2;24225:3;24221:12;24214:19;;23873:366;;;:::o;24245:419::-;24411:4;24449:2;24438:9;24434:18;24426:26;;24498:9;24492:4;24488:20;24484:1;24473:9;24469:17;24462:47;24526:131;24652:4;24526:131;:::i;:::-;24518:139;;24245:419;;;:::o;24670:180::-;24718:77;24715:1;24708:88;24815:4;24812:1;24805:15;24839:4;24836:1;24829:15;24856:180;24904:77;24901:1;24894:88;25001:4;24998:1;24991:15;25025:4;25022:1;25015:15;25042:143;25099:5;25130:6;25124:13;25115:22;;25146:33;25173:5;25146:33;:::i;:::-;25042:143;;;;:::o;25191:351::-;25261:6;25310:2;25298:9;25289:7;25285:23;25281:32;25278:119;;;25316:79;;:::i;:::-;25278:119;25436:1;25461:64;25517:7;25508:6;25497:9;25493:22;25461:64;:::i;:::-;25451:74;;25407:128;25191:351;;;;:::o;25548:85::-;25593:7;25622:5;25611:16;;25548:85;;;:::o;25639:158::-;25697:9;25730:61;25748:42;25757:32;25783:5;25757:32;:::i;:::-;25748:42;:::i;:::-;25730:61;:::i;:::-;25717:74;;25639:158;;;:::o;25803:147::-;25898:45;25937:5;25898:45;:::i;:::-;25893:3;25886:58;25803:147;;:::o;25956:114::-;26023:6;26057:5;26051:12;26041:22;;25956:114;;;:::o;26076:184::-;26175:11;26209:6;26204:3;26197:19;26249:4;26244:3;26240:14;26225:29;;26076:184;;;;:::o;26266:132::-;26333:4;26356:3;26348:11;;26386:4;26381:3;26377:14;26369:22;;26266:132;;;:::o;26404:108::-;26481:24;26499:5;26481:24;:::i;:::-;26476:3;26469:37;26404:108;;:::o;26518:179::-;26587:10;26608:46;26650:3;26642:6;26608:46;:::i;:::-;26686:4;26681:3;26677:14;26663:28;;26518:179;;;;:::o;26703:113::-;26773:4;26805;26800:3;26796:14;26788:22;;26703:113;;;:::o;26852:732::-;26971:3;27000:54;27048:5;27000:54;:::i;:::-;27070:86;27149:6;27144:3;27070:86;:::i;:::-;27063:93;;27180:56;27230:5;27180:56;:::i;:::-;27259:7;27290:1;27275:284;27300:6;27297:1;27294:13;27275:284;;;27376:6;27370:13;27403:63;27462:3;27447:13;27403:63;:::i;:::-;27396:70;;27489:60;27542:6;27489:60;:::i;:::-;27479:70;;27335:224;27322:1;27319;27315:9;27310:14;;27275:284;;;27279:14;27575:3;27568:10;;26976:608;;;26852:732;;;;:::o;27590:831::-;27853:4;27891:3;27880:9;27876:19;27868:27;;27905:71;27973:1;27962:9;27958:17;27949:6;27905:71;:::i;:::-;27986:80;28062:2;28051:9;28047:18;28038:6;27986:80;:::i;:::-;28113:9;28107:4;28103:20;28098:2;28087:9;28083:18;28076:48;28141:108;28244:4;28235:6;28141:108;:::i;:::-;28133:116;;28259:72;28327:2;28316:9;28312:18;28303:6;28259:72;:::i;:::-;28341:73;28409:3;28398:9;28394:19;28385:6;28341:73;:::i;:::-;27590:831;;;;;;;;:::o;28427:483::-;28598:4;28636:2;28625:9;28621:18;28613:26;;28649:71;28717:1;28706:9;28702:17;28693:6;28649:71;:::i;:::-;28767:9;28761:4;28757:20;28752:2;28741:9;28737:18;28730:48;28795:108;28898:4;28889:6;28795:108;:::i;:::-;28787:116;;28427:483;;;;;:::o;28916:410::-;28956:7;28979:20;28997:1;28979:20;:::i;:::-;28974:25;;29013:20;29031:1;29013:20;:::i;:::-;29008:25;;29068:1;29065;29061:9;29090:30;29108:11;29090:30;:::i;:::-;29079:41;;29269:1;29260:7;29256:15;29253:1;29250:22;29230:1;29223:9;29203:83;29180:139;;29299:18;;:::i;:::-;29180:139;28964:362;28916:410;;;;:::o;29332:180::-;29380:77;29377:1;29370:88;29477:4;29474:1;29467:15;29501:4;29498:1;29491:15;29518:185;29558:1;29575:20;29593:1;29575:20;:::i;:::-;29570:25;;29609:20;29627:1;29609:20;:::i;:::-;29604:25;;29648:1;29638:35;;29653:18;;:::i;:::-;29638:35;29695:1;29692;29688:9;29683:14;;29518:185;;;;:::o;29709:220::-;29849:34;29845:1;29837:6;29833:14;29826:58;29918:3;29913:2;29905:6;29901:15;29894:28;29709:220;:::o;29935:366::-;30077:3;30098:67;30162:2;30157:3;30098:67;:::i;:::-;30091:74;;30174:93;30263:3;30174:93;:::i;:::-;30292:2;30287:3;30283:12;30276:19;;29935:366;;;:::o;30307:419::-;30473:4;30511:2;30500:9;30496:18;30488:26;;30560:9;30554:4;30550:20;30546:1;30535:9;30531:17;30524:47;30588:131;30714:4;30588:131;:::i;:::-;30580:139;;30307:419;;;:::o

Swarm Source

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