ETH Price: $3,846.90 (-2.01%)

Token

Swift (SWIFT)
 

Overview

Max Total Supply

925,812.373273931809052017 SWIFT

Holders

478 (0.00%)

Market

Price

$0.02 @ 0.000005 ETH

Onchain Market Cap

$16,937.10

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000000007 SWIFT

Value
$0.00 ( ~0 Eth) [0.0000%]
0x49149d59eec2c8b62819b1c3a5a103ee40597816
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Swift is a trading/sniping platform with massive backing! Swift plans to release an entire trading ecosystem including a telegram bot, a desktop app, and a mobile app.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Swift

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-18
*/

/*
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@%  #@@@@@   *@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&  ,@@@   @@@@@/      &@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  /@.  &@@&  *@@@@@         @@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@   *@@@@@@@@@@@@@@@@@@#          %@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@*@@@@@@@@@@@@@@@@@@@@@@@@@@          #@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@        @@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@       @@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@(     &@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    *@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


Website: https://www.swiftbot.io/
Twitter: https://x.com/swiftecosystem?s=21
Telegram: https://t.me/+qc21Ci7uWbJjOGJk

*/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;


library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

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

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

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

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

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

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

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function 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 {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}

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

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

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

contract Swift is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'Swift';
    string private constant _symbol = unicode'SWIFT';
    uint8 private constant _decimals = 18;
    uint256 private _totalSupply = 1000000 * (10 ** _decimals);
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) private isBot;
    IRouter router;
    address public pair;
    bool private tradingAllowed = false;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 1;
    uint256 private swapThreshold = ( _totalSupply * 1000 ) / 100000;
    uint256 private minTokenAmount = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 1500;
    uint256 private developmentFee = 1500;
    uint256 private burnFee = 0;
    uint256 private totalFee = 3000;
    uint256 private sellFee = 6000;
    uint256 private transferFee = 6000;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal development_receiver = 0xAF306498b1f88CE86d4AaFFd4871b557AAd2Aa59; 
    address internal marketing_receiver = 0xAF306498b1f88CE86d4AaFFd4871b557AAd2Aa59;
    address internal liquidity_receiver = 0xAF306498b1f88CE86d4AaFFd4871b557AAd2Aa59;
    uint256 public _maxTxAmount = ( _totalSupply * 100 ) / 10000;
    uint256 public _maxSellAmount = ( _totalSupply * 100 ) / 10000;
    uint256 public _maxWalletToken = ( _totalSupply * 150 ) / 10000;

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router; pair = _pair;
        isFeeExempt[address(this)] = true;
        isFeeExempt[liquidity_receiver] = true;
        isFeeExempt[marketing_receiver] = true;
        isFeeExempt[development_receiver] = true;
        isFeeExempt[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function startTrading() external onlyOwner {tradingAllowed = true;}
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    function shouldContractSwap(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= minTokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && swapTimes >= swapAmount && aboveThreshold;
    }

    function setContractSwapSettings(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner {
        swapAmount = _swapAmount; swapThreshold = _totalSupply.mul(_swapThreshold).div(uint256(100000)); 
        minTokenAmount = _totalSupply.mul(_minTokenAmount).div(uint256(100000));
    }

    function setCAFees(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans;
        require(totalFee <= denominator && sellFee <= denominator && transferFee <= denominator, "totalFee and sellFee cannot be more than 100%");
    }

    function setTxLimits(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _totalSupply.mul(_buy).div(10000); uint256 newTransfer = _totalSupply.mul(_sell).div(10000); uint256 newWallet = _totalSupply.mul(_wallet).div(10000);
        _maxTxAmount = newTx; _maxSellAmount = newTransfer; _maxWalletToken = newWallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }

    function setInternalAddresses(address _marketing, address _liquidity, address _development) external onlyOwner {
        marketing_receiver = _marketing; liquidity_receiver = _liquidity; development_receiver = _development;
        isFeeExempt[_marketing] = true; isFeeExempt[_liquidity] = true; isFeeExempt[_development] = true;
    }

    function setisBot(address[] calldata addresses, bool _enabled) external onlyOwner {
        for(uint i=0; i < addresses.length; i++){
        isBot[addresses[i]] = _enabled; }
    }

    function manualSwap() external onlyOwner {
        swapAndLiquify(swapThreshold);
    }

    function rescueERC20(address _address, uint256 percent) external onlyOwner {
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(development_receiver, _amount);
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(development_receiver).transfer(contractBalance);}
    }

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

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

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

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(isBot[sender] || isBot[recipient]){return denominator.sub(uint256(100));}
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && getTotalFee(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");}
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");}
        if(sender != pair){require(amount <= _maxSellAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");}
        require(amount <= _maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded"); 
        if(recipient == pair && !isFeeExempt[sender]){swapTimes += uint256(1);}
        if(shouldContractSwap(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

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

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

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxSellAmount","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":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setCAFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_minTokenAmount","type":"uint256"}],"name":"setContractSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_liquidity","type":"address"},{"internalType":"address","name":"_development","type":"address"}],"name":"setInternalAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setTxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a62000014919062000905565b620f424062000024919062000956565b6001556000600760146101000a81548160ff0219169083151502179055506001600760156101000a81548160ff0219169083151502179055506001600a55620186a06103e860015462000078919062000956565b620000849190620009d0565b600b55620186a0600a6001546200009c919062000956565b620000a89190620009d0565b600c556000600d556105dc600e556105dc600f556000601055610bb860115561177060125561177060135561271060145573af306498b1f88ce86d4aaffd4871b557aad2aa59601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073af306498b1f88ce86d4aaffd4871b557aad2aa59601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073af306498b1f88ce86d4aaffd4871b557aad2aa59601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506127106064600154620001ec919062000956565b620001f89190620009d0565b60185561271060646001546200020f919062000956565b6200021b9190620009d0565b601955612710609660015462000232919062000956565b6200023e9190620009d0565b601a553480156200024e57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031e919062000a72565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000386573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ac919062000a72565b6040518363ffffffff1660e01b8152600401620003cb92919062000ab5565b6020604051808303816000875af1158015620003eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000411919062000a72565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600154600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001546040516200075b919062000af3565b60405180910390a3505062000b10565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620007f957808604811115620007d157620007d06200076b565b5b6001851615620007e15780820291505b8081029050620007f1856200079a565b9450620007b1565b94509492505050565b600082620008145760019050620008e7565b81620008245760009050620008e7565b81600181146200083d576002811462000848576200087e565b6001915050620008e7565b60ff8411156200085d576200085c6200076b565b5b8360020a9150848211156200087757620008766200076b565b5b50620008e7565b5060208310610133831016604e8410600b8410161715620008b85782820a905083811115620008b257620008b16200076b565b5b620008e7565b620008c78484846001620007a7565b92509050818404811115620008e157620008e06200076b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200091282620008ee565b91506200091f83620008f8565b92506200094e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000802565b905092915050565b60006200096382620008ee565b91506200097083620008ee565b92508282026200098081620008ee565b915082820484148315176200099a57620009996200076b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009dd82620008ee565b9150620009ea83620008ee565b925082620009fd57620009fc620009a1565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a3a8262000a0d565b9050919050565b62000a4c8162000a2d565b811462000a5857600080fd5b50565b60008151905062000a6c8162000a41565b92915050565b60006020828403121562000a8b5762000a8a62000a08565b5b600062000a9b8482850162000a5b565b91505092915050565b62000aaf8162000a2d565b82525050565b600060408201905062000acc600083018562000aa4565b62000adb602083018462000aa4565b9392505050565b62000aed81620008ee565b82525050565b600060208201905062000b0a600083018462000ae2565b92915050565b613ade8062000b206000396000f3fe6080604052600436106101855760003560e01c806378109e54116100d157806395d89b411161008a578063a9059cbb11610064578063a9059cbb14610569578063dd62ed3e146105a6578063e46b3b3f146105e3578063f2fde38b1461060c5761018c565b806395d89b41146104ea5780639d8740cb14610515578063a8aa1b311461053e5761018c565b806378109e54146103ec5780637cca52fe146104175780637d1db4a514610442578063893d20e81461046d5780638cd4426d146104985780639213c358146104c15761018c565b8063293230b81161013e5780633f4218e0116101185780633f4218e01461033257806348ff2b8b1461036f57806351bc3c851461039857806370a08231146103af5761018c565b8063293230b8146102b35780632f54bf6e146102ca578063313ce567146103075761018c565b806306fdde0314610191578063095ea7b3146101bc57806318160ddd146101f9578063229b6a5e1461022457806323b872dd1461024d578063279a3e321461028a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610635565b6040516101b39190612a1e565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612ade565b610672565b6040516101f09190612b39565b60405180910390f35b34801561020557600080fd5b5061020e610689565b60405161021b9190612b63565b60405180910390f35b34801561023057600080fd5b5061024b60048036038101906102469190612c0f565b6106ca565b005b34801561025957600080fd5b50610274600480360381019061026f9190612c6f565b6107b7565b6040516102819190612b39565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac9190612cc2565b610882565b005b3480156102bf57600080fd5b506102c861096b565b005b3480156102d657600080fd5b506102f160048036038101906102ec9190612d64565b6109d0565b6040516102fe9190612b39565b60405180910390f35b34801561031357600080fd5b5061031c610a29565b6040516103299190612dad565b60405180910390f35b34801561033e57600080fd5b5061035960048036038101906103549190612d64565b610a32565b6040516103669190612b39565b60405180910390f35b34801561037b57600080fd5b5061039660048036038101906103919190612dc8565b610a52565b005b3480156103a457600080fd5b506103ad610af5565b005b3480156103bb57600080fd5b506103d660048036038101906103d19190612d64565b610b4a565b6040516103e39190612b63565b60405180910390f35b3480156103f857600080fd5b50610401610b93565b60405161040e9190612b63565b60405180910390f35b34801561042357600080fd5b5061042c610b99565b6040516104399190612b63565b60405180910390f35b34801561044e57600080fd5b50610457610b9f565b6040516104649190612b63565b60405180910390f35b34801561047957600080fd5b50610482610ba5565b60405161048f9190612e17565b60405180910390f35b3480156104a457600080fd5b506104bf60048036038101906104ba9190612ade565b610bce565b005b3480156104cd57600080fd5b506104e860048036038101906104e39190612e32565b610d5f565b005b3480156104f657600080fd5b506104ff610f77565b60405161050c9190612a1e565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190612e85565b610fb4565b005b34801561054a57600080fd5b50610553611068565b6040516105609190612e17565b60405180910390f35b34801561057557600080fd5b50610590600480360381019061058b9190612ade565b61108e565b60405161059d9190612b39565b60405180910390f35b3480156105b257600080fd5b506105cd60048036038101906105c89190612ed8565b6110a5565b6040516105da9190612b63565b60405180910390f35b3480156105ef57600080fd5b5061060a60048036038101906106059190612e85565b61112c565b005b34801561061857600080fd5b50610633600480360381019061062e9190612f56565b6112a7565b005b60606040518060400160405280600581526020017f5377696674000000000000000000000000000000000000000000000000000000815250905090565b600061067f338484611369565b6001905092915050565b60006106c56106986000610b4a565b6106b76106a661dead610b4a565b60015461153290919063ffffffff16565b61153290919063ffffffff16565b905090565b6106d3336109d0565b610712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070990612fcf565b60405180910390fd5b60005b838390508110156107b157816005600086868581811061073857610737612fef565b5b905060200201602081019061074d9190612d64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107a99061304d565b915050610715565b50505050565b60006107c4848484611548565b610877843361087285604051806060016040528060288152602001613a8160289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e129092919063ffffffff16565b611369565b600190509392505050565b61088b336109d0565b6108ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c190612fcf565b60405180910390fd5b86600d8190555085600e819055508460108190555083600f8190555082601181905550816012819055508060138190555060145460115411158015610913575060145460125411155b8015610923575060145460135411155b610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095990613107565b60405180910390fd5b50505050505050565b610974336109d0565b6109b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109aa90612fcf565b60405180910390fd5b6001600760146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b60046020528060005260406000206000915054906101000a900460ff1681565b610a5b336109d0565b610a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9190612fcf565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610afe336109d0565b610b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3490612fcf565b60405180910390fd5b610b48600b54611e67565b565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601a5481565b60195481565b60185481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610bd7336109d0565b610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d90612fcf565b60405180910390fd5b6000610cb76064610ca9848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c5a9190612e17565b602060405180830381865afa158015610c77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9b919061313c565b6120d490919063ffffffff16565b6120ea90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610d16929190613169565b6020604051808303816000875af1158015610d35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5991906131a7565b50505050565b610d68336109d0565b610da7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9e90612fcf565b60405180910390fd5b82601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60606040518060400160405280600581526020017f5357494654000000000000000000000000000000000000000000000000000000815250905090565b610fbd336109d0565b610ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff390612fcf565b60405180910390fd5b82600a8190555061102d620186a061101f846001546120d490919063ffffffff16565b6120ea90919063ffffffff16565b600b8190555061105d620186a061104f836001546120d490919063ffffffff16565b6120ea90919063ffffffff16565b600c81905550505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061109b338484611548565b6001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611135336109d0565b611174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116b90612fcf565b60405180910390fd5b600061119f612710611191866001546120d490919063ffffffff16565b6120ea90919063ffffffff16565b905060006111cc6127106111be866001546120d490919063ffffffff16565b6120ea90919063ffffffff16565b905060006111f96127106111eb866001546120d490919063ffffffff16565b6120ea90919063ffffffff16565b9050826018819055508160198190555080601a8190555060006112416103e86112336005611225610689565b6120d490919063ffffffff16565b6120ea90919063ffffffff16565b90508084101580156112535750808310155b801561125f5750808210155b61129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129590613246565b60405180910390fd5b50505050505050565b6112b0336109d0565b6112ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e690612fcf565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161135e91906132c5565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cf90613352565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143e906133e4565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115259190612b63565b60405180910390a3505050565b600081836115409190613404565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ae906134aa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161d9061353c565b60405180910390fd5b61162f83610b4a565b811115611671576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611668906135ce565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117155750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561176a57600760149054906101000a900460ff16611769576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117609061363a565b60405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561180e5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118685750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118a2575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561193e57601a546118fc82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210090919063ffffffff16565b111561193d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611934906136a6565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a8157601954811115806119ed5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a415750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7790613712565b60405180910390fd5b5b60185481111580611adb5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b2f5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6590613712565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611c155750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c3557600160086000828254611c2d9190613732565b925050819055505b611c40838383612116565b15611c5957611c50600b54611e67565b60006008819055505b611cab81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461153290919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611cfa8484612250565b611d045781611d10565b611d0f8484846122fe565b5b9050611d6481600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210090919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e049190612b63565b60405180910390a350505050565b6000838311158290611e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e519190612a1e565b60405180910390fd5b5082840390509392505050565b6001600960006101000a81548160ff0219169083151502179055506000611ed56002611ec7600f54611eb9600e54611eab6001600d5461210090919063ffffffff16565b61210090919063ffffffff16565b61210090919063ffffffff16565b6120d490919063ffffffff16565b90506000611f0082611ef2600d54866120d490919063ffffffff16565b6120ea90919063ffffffff16565b90506000611f17828561153290919063ffffffff16565b90506000479050611f27826124bc565b6000611f3c824761153290919063ffffffff16565b90506000611f67611f58600d548861153290919063ffffffff16565b836120ea90919063ffffffff16565b90506000611f80600d54836120d490919063ffffffff16565b90506000811115611f9657611f9586826126ff565b5b6000611fc0600e54611fb26002866120d490919063ffffffff16565b6120d490919063ffffffff16565b9050600081111561203557601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612033573d6000803e3d6000fd5b505b600047905060008111156120ad57601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156120ab573d6000803e3d6000fd5b505b5050505050505050506000600960006101000a81548160ff02191690831515021790555050565b600081836120e29190613766565b905092915050565b600081836120f891906137d7565b905092915050565b6000818361210e9190613732565b905092915050565b600080600c5483101590506000600b5461212f30610b4a565b10159050600960009054906101000a900460ff1615801561215c5750600760159054906101000a900460ff165b80156121745750600760149054906101000a900460ff165b801561217d5750815b80156121d35750600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561222c5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b801561223c5750600a5460085410155b80156122455750805b925050509392505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122f65750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b60008061230b85856127ff565b11156124b157600061234361232086866127ff565b612335601454866120ea90919063ffffffff16565b6120d490919063ffffffff16565b905061239781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124379190612b63565b60405180910390a3600060105411801561245b575060105461245986866127ff565b115b15612496576124953061dead612490601054612482601454896120ea90919063ffffffff16565b6120d490919063ffffffff16565b611548565b5b6124a9818461153290919063ffffffff16565b9150506124b5565b8190505b9392505050565b6000600267ffffffffffffffff8111156124d9576124d8613808565b5b6040519080825280602002602001820160405280156125075781602001602082028036833780820191505090505b509050308160008151811061251f5761251e612fef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ea919061384c565b816001815181106125fe576125fd612fef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061266530600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611369565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016126c9959493929190613972565b600060405180830381600087803b1580156126e357600080fd5b505af11580156126f7573d6000803e3d6000fd5b505050505050565b61272c30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611369565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016127b5969594939291906139cc565b60606040518083038185885af11580156127d3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127f89190613a2d565b5050505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128a25750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128c4576128bd606460145461153290919063ffffffff16565b9050612988565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612923576012549050612988565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612982576011549050612988565b60135490505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129c85780820151818401526020810190506129ad565b60008484015250505050565b6000601f19601f8301169050919050565b60006129f08261298e565b6129fa8185612999565b9350612a0a8185602086016129aa565b612a13816129d4565b840191505092915050565b60006020820190508181036000830152612a3881846129e5565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a7582612a4a565b9050919050565b612a8581612a6a565b8114612a9057600080fd5b50565b600081359050612aa281612a7c565b92915050565b6000819050919050565b612abb81612aa8565b8114612ac657600080fd5b50565b600081359050612ad881612ab2565b92915050565b60008060408385031215612af557612af4612a40565b5b6000612b0385828601612a93565b9250506020612b1485828601612ac9565b9150509250929050565b60008115159050919050565b612b3381612b1e565b82525050565b6000602082019050612b4e6000830184612b2a565b92915050565b612b5d81612aa8565b82525050565b6000602082019050612b786000830184612b54565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612ba357612ba2612b7e565b5b8235905067ffffffffffffffff811115612bc057612bbf612b83565b5b602083019150836020820283011115612bdc57612bdb612b88565b5b9250929050565b612bec81612b1e565b8114612bf757600080fd5b50565b600081359050612c0981612be3565b92915050565b600080600060408486031215612c2857612c27612a40565b5b600084013567ffffffffffffffff811115612c4657612c45612a45565b5b612c5286828701612b8d565b93509350506020612c6586828701612bfa565b9150509250925092565b600080600060608486031215612c8857612c87612a40565b5b6000612c9686828701612a93565b9350506020612ca786828701612a93565b9250506040612cb886828701612ac9565b9150509250925092565b600080600080600080600060e0888a031215612ce157612ce0612a40565b5b6000612cef8a828b01612ac9565b9750506020612d008a828b01612ac9565b9650506040612d118a828b01612ac9565b9550506060612d228a828b01612ac9565b9450506080612d338a828b01612ac9565b93505060a0612d448a828b01612ac9565b92505060c0612d558a828b01612ac9565b91505092959891949750929550565b600060208284031215612d7a57612d79612a40565b5b6000612d8884828501612a93565b91505092915050565b600060ff82169050919050565b612da781612d91565b82525050565b6000602082019050612dc26000830184612d9e565b92915050565b60008060408385031215612ddf57612dde612a40565b5b6000612ded85828601612a93565b9250506020612dfe85828601612bfa565b9150509250929050565b612e1181612a6a565b82525050565b6000602082019050612e2c6000830184612e08565b92915050565b600080600060608486031215612e4b57612e4a612a40565b5b6000612e5986828701612a93565b9350506020612e6a86828701612a93565b9250506040612e7b86828701612a93565b9150509250925092565b600080600060608486031215612e9e57612e9d612a40565b5b6000612eac86828701612ac9565b9350506020612ebd86828701612ac9565b9250506040612ece86828701612ac9565b9150509250925092565b60008060408385031215612eef57612eee612a40565b5b6000612efd85828601612a93565b9250506020612f0e85828601612a93565b9150509250929050565b6000612f2382612a4a565b9050919050565b612f3381612f18565b8114612f3e57600080fd5b50565b600081359050612f5081612f2a565b92915050565b600060208284031215612f6c57612f6b612a40565b5b6000612f7a84828501612f41565b91505092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612fb9600683612999565b9150612fc482612f83565b602082019050919050565b60006020820190508181036000830152612fe881612fac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061305882612aa8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361308a5761308961301e565b5b600182019050919050565b7f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60008201527f6f7265207468616e203130302500000000000000000000000000000000000000602082015250565b60006130f1602d83612999565b91506130fc82613095565b604082019050919050565b60006020820190508181036000830152613120816130e4565b9050919050565b60008151905061313681612ab2565b92915050565b60006020828403121561315257613151612a40565b5b600061316084828501613127565b91505092915050565b600060408201905061317e6000830185612e08565b61318b6020830184612b54565b9392505050565b6000815190506131a181612be3565b92915050565b6000602082840312156131bd576131bc612a40565b5b60006131cb84828501613192565b91505092915050565b7f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560008201527f206c657373207468616e202e3525000000000000000000000000000000000000602082015250565b6000613230602e83612999565b915061323b826131d4565b604082019050919050565b6000602082019050818103600083015261325f81613223565b9050919050565b6000819050919050565b600061328b61328661328184612a4a565b613266565b612a4a565b9050919050565b600061329d82613270565b9050919050565b60006132af82613292565b9050919050565b6132bf816132a4565b82525050565b60006020820190506132da60008301846132b6565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061333c602483612999565b9150613347826132e0565b604082019050919050565b6000602082019050818103600083015261336b8161332f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006133ce602283612999565b91506133d982613372565b604082019050919050565b600060208201905081810360008301526133fd816133c1565b9050919050565b600061340f82612aa8565b915061341a83612aa8565b92508282039050818111156134325761343161301e565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613494602583612999565b915061349f82613438565b604082019050919050565b600060208201905081810360008301526134c381613487565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613526602383612999565b9150613531826134ca565b604082019050919050565b6000602082019050818103600083015261355581613519565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b60006135b8603183612999565b91506135c38261355c565b604082019050919050565b600060208201905081810360008301526135e7816135ab565b9050919050565b7f74726164696e67416c6c6f776564000000000000000000000000000000000000600082015250565b6000613624600e83612999565b915061362f826135ee565b602082019050919050565b6000602082019050818103600083015261365381613617565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b6000613690601e83612999565b915061369b8261365a565b602082019050919050565b600060208201905081810360008301526136bf81613683565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006136fc601183612999565b9150613707826136c6565b602082019050919050565b6000602082019050818103600083015261372b816136ef565b9050919050565b600061373d82612aa8565b915061374883612aa8565b92508282019050808211156137605761375f61301e565b5b92915050565b600061377182612aa8565b915061377c83612aa8565b925082820261378a81612aa8565b915082820484148315176137a1576137a061301e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137e282612aa8565b91506137ed83612aa8565b9250826137fd576137fc6137a8565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061384681612a7c565b92915050565b60006020828403121561386257613861612a40565b5b600061387084828501613837565b91505092915050565b6000819050919050565b600061389e61389961389484613879565b613266565b612aa8565b9050919050565b6138ae81613883565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138e981612a6a565b82525050565b60006138fb83836138e0565b60208301905092915050565b6000602082019050919050565b600061391f826138b4565b61392981856138bf565b9350613934836138d0565b8060005b8381101561396557815161394c88826138ef565b975061395783613907565b925050600181019050613938565b5085935050505092915050565b600060a0820190506139876000830188612b54565b61399460208301876138a5565b81810360408301526139a68186613914565b90506139b56060830185612e08565b6139c26080830184612b54565b9695505050505050565b600060c0820190506139e16000830189612e08565b6139ee6020830188612b54565b6139fb60408301876138a5565b613a0860608301866138a5565b613a156080830185612e08565b613a2260a0830184612b54565b979650505050505050565b600080600060608486031215613a4657613a45612a40565b5b6000613a5486828701613127565b9350506020613a6586828701613127565b9250506040613a7686828701613127565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204c62d746a462303c85f6d76427cdaa64b36a265ce0988ed0507b847ac1f1447264736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101855760003560e01c806378109e54116100d157806395d89b411161008a578063a9059cbb11610064578063a9059cbb14610569578063dd62ed3e146105a6578063e46b3b3f146105e3578063f2fde38b1461060c5761018c565b806395d89b41146104ea5780639d8740cb14610515578063a8aa1b311461053e5761018c565b806378109e54146103ec5780637cca52fe146104175780637d1db4a514610442578063893d20e81461046d5780638cd4426d146104985780639213c358146104c15761018c565b8063293230b81161013e5780633f4218e0116101185780633f4218e01461033257806348ff2b8b1461036f57806351bc3c851461039857806370a08231146103af5761018c565b8063293230b8146102b35780632f54bf6e146102ca578063313ce567146103075761018c565b806306fdde0314610191578063095ea7b3146101bc57806318160ddd146101f9578063229b6a5e1461022457806323b872dd1461024d578063279a3e321461028a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610635565b6040516101b39190612a1e565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612ade565b610672565b6040516101f09190612b39565b60405180910390f35b34801561020557600080fd5b5061020e610689565b60405161021b9190612b63565b60405180910390f35b34801561023057600080fd5b5061024b60048036038101906102469190612c0f565b6106ca565b005b34801561025957600080fd5b50610274600480360381019061026f9190612c6f565b6107b7565b6040516102819190612b39565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac9190612cc2565b610882565b005b3480156102bf57600080fd5b506102c861096b565b005b3480156102d657600080fd5b506102f160048036038101906102ec9190612d64565b6109d0565b6040516102fe9190612b39565b60405180910390f35b34801561031357600080fd5b5061031c610a29565b6040516103299190612dad565b60405180910390f35b34801561033e57600080fd5b5061035960048036038101906103549190612d64565b610a32565b6040516103669190612b39565b60405180910390f35b34801561037b57600080fd5b5061039660048036038101906103919190612dc8565b610a52565b005b3480156103a457600080fd5b506103ad610af5565b005b3480156103bb57600080fd5b506103d660048036038101906103d19190612d64565b610b4a565b6040516103e39190612b63565b60405180910390f35b3480156103f857600080fd5b50610401610b93565b60405161040e9190612b63565b60405180910390f35b34801561042357600080fd5b5061042c610b99565b6040516104399190612b63565b60405180910390f35b34801561044e57600080fd5b50610457610b9f565b6040516104649190612b63565b60405180910390f35b34801561047957600080fd5b50610482610ba5565b60405161048f9190612e17565b60405180910390f35b3480156104a457600080fd5b506104bf60048036038101906104ba9190612ade565b610bce565b005b3480156104cd57600080fd5b506104e860048036038101906104e39190612e32565b610d5f565b005b3480156104f657600080fd5b506104ff610f77565b60405161050c9190612a1e565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190612e85565b610fb4565b005b34801561054a57600080fd5b50610553611068565b6040516105609190612e17565b60405180910390f35b34801561057557600080fd5b50610590600480360381019061058b9190612ade565b61108e565b60405161059d9190612b39565b60405180910390f35b3480156105b257600080fd5b506105cd60048036038101906105c89190612ed8565b6110a5565b6040516105da9190612b63565b60405180910390f35b3480156105ef57600080fd5b5061060a60048036038101906106059190612e85565b61112c565b005b34801561061857600080fd5b50610633600480360381019061062e9190612f56565b6112a7565b005b60606040518060400160405280600581526020017f5377696674000000000000000000000000000000000000000000000000000000815250905090565b600061067f338484611369565b6001905092915050565b60006106c56106986000610b4a565b6106b76106a661dead610b4a565b60015461153290919063ffffffff16565b61153290919063ffffffff16565b905090565b6106d3336109d0565b610712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070990612fcf565b60405180910390fd5b60005b838390508110156107b157816005600086868581811061073857610737612fef565b5b905060200201602081019061074d9190612d64565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107a99061304d565b915050610715565b50505050565b60006107c4848484611548565b610877843361087285604051806060016040528060288152602001613a8160289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e129092919063ffffffff16565b611369565b600190509392505050565b61088b336109d0565b6108ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c190612fcf565b60405180910390fd5b86600d8190555085600e819055508460108190555083600f8190555082601181905550816012819055508060138190555060145460115411158015610913575060145460125411155b8015610923575060145460135411155b610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095990613107565b60405180910390fd5b50505050505050565b610974336109d0565b6109b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109aa90612fcf565b60405180910390fd5b6001600760146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b60046020528060005260406000206000915054906101000a900460ff1681565b610a5b336109d0565b610a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9190612fcf565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610afe336109d0565b610b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3490612fcf565b60405180910390fd5b610b48600b54611e67565b565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601a5481565b60195481565b60185481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610bd7336109d0565b610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d90612fcf565b60405180910390fd5b6000610cb76064610ca9848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c5a9190612e17565b602060405180830381865afa158015610c77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9b919061313c565b6120d490919063ffffffff16565b6120ea90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610d16929190613169565b6020604051808303816000875af1158015610d35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5991906131a7565b50505050565b610d68336109d0565b610da7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9e90612fcf565b60405180910390fd5b82601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60606040518060400160405280600581526020017f5357494654000000000000000000000000000000000000000000000000000000815250905090565b610fbd336109d0565b610ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff390612fcf565b60405180910390fd5b82600a8190555061102d620186a061101f846001546120d490919063ffffffff16565b6120ea90919063ffffffff16565b600b8190555061105d620186a061104f836001546120d490919063ffffffff16565b6120ea90919063ffffffff16565b600c81905550505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061109b338484611548565b6001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611135336109d0565b611174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116b90612fcf565b60405180910390fd5b600061119f612710611191866001546120d490919063ffffffff16565b6120ea90919063ffffffff16565b905060006111cc6127106111be866001546120d490919063ffffffff16565b6120ea90919063ffffffff16565b905060006111f96127106111eb866001546120d490919063ffffffff16565b6120ea90919063ffffffff16565b9050826018819055508160198190555080601a8190555060006112416103e86112336005611225610689565b6120d490919063ffffffff16565b6120ea90919063ffffffff16565b90508084101580156112535750808310155b801561125f5750808210155b61129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129590613246565b60405180910390fd5b50505050505050565b6112b0336109d0565b6112ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e690612fcf565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161135e91906132c5565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cf90613352565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143e906133e4565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115259190612b63565b60405180910390a3505050565b600081836115409190613404565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ae906134aa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161d9061353c565b60405180910390fd5b61162f83610b4a565b811115611671576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611668906135ce565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117155750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561176a57600760149054906101000a900460ff16611769576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117609061363a565b60405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561180e5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118685750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118a2575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561193e57601a546118fc82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210090919063ffffffff16565b111561193d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611934906136a6565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a8157601954811115806119ed5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a415750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7790613712565b60405180910390fd5b5b60185481111580611adb5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b2f5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6590613712565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611c155750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c3557600160086000828254611c2d9190613732565b925050819055505b611c40838383612116565b15611c5957611c50600b54611e67565b60006008819055505b611cab81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461153290919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611cfa8484612250565b611d045781611d10565b611d0f8484846122fe565b5b9050611d6481600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210090919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e049190612b63565b60405180910390a350505050565b6000838311158290611e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e519190612a1e565b60405180910390fd5b5082840390509392505050565b6001600960006101000a81548160ff0219169083151502179055506000611ed56002611ec7600f54611eb9600e54611eab6001600d5461210090919063ffffffff16565b61210090919063ffffffff16565b61210090919063ffffffff16565b6120d490919063ffffffff16565b90506000611f0082611ef2600d54866120d490919063ffffffff16565b6120ea90919063ffffffff16565b90506000611f17828561153290919063ffffffff16565b90506000479050611f27826124bc565b6000611f3c824761153290919063ffffffff16565b90506000611f67611f58600d548861153290919063ffffffff16565b836120ea90919063ffffffff16565b90506000611f80600d54836120d490919063ffffffff16565b90506000811115611f9657611f9586826126ff565b5b6000611fc0600e54611fb26002866120d490919063ffffffff16565b6120d490919063ffffffff16565b9050600081111561203557601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612033573d6000803e3d6000fd5b505b600047905060008111156120ad57601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156120ab573d6000803e3d6000fd5b505b5050505050505050506000600960006101000a81548160ff02191690831515021790555050565b600081836120e29190613766565b905092915050565b600081836120f891906137d7565b905092915050565b6000818361210e9190613732565b905092915050565b600080600c5483101590506000600b5461212f30610b4a565b10159050600960009054906101000a900460ff1615801561215c5750600760159054906101000a900460ff165b80156121745750600760149054906101000a900460ff165b801561217d5750815b80156121d35750600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561222c5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b801561223c5750600a5460085410155b80156122455750805b925050509392505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122f65750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b60008061230b85856127ff565b11156124b157600061234361232086866127ff565b612335601454866120ea90919063ffffffff16565b6120d490919063ffffffff16565b905061239781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124379190612b63565b60405180910390a3600060105411801561245b575060105461245986866127ff565b115b15612496576124953061dead612490601054612482601454896120ea90919063ffffffff16565b6120d490919063ffffffff16565b611548565b5b6124a9818461153290919063ffffffff16565b9150506124b5565b8190505b9392505050565b6000600267ffffffffffffffff8111156124d9576124d8613808565b5b6040519080825280602002602001820160405280156125075781602001602082028036833780820191505090505b509050308160008151811061251f5761251e612fef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ea919061384c565b816001815181106125fe576125fd612fef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061266530600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611369565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016126c9959493929190613972565b600060405180830381600087803b1580156126e357600080fd5b505af11580156126f7573d6000803e3d6000fd5b505050505050565b61272c30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611369565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016127b5969594939291906139cc565b60606040518083038185885af11580156127d3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127f89190613a2d565b5050505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128a25750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128c4576128bd606460145461153290919063ffffffff16565b9050612988565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612923576012549050612988565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612982576011549050612988565b60135490505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129c85780820151818401526020810190506129ad565b60008484015250505050565b6000601f19601f8301169050919050565b60006129f08261298e565b6129fa8185612999565b9350612a0a8185602086016129aa565b612a13816129d4565b840191505092915050565b60006020820190508181036000830152612a3881846129e5565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a7582612a4a565b9050919050565b612a8581612a6a565b8114612a9057600080fd5b50565b600081359050612aa281612a7c565b92915050565b6000819050919050565b612abb81612aa8565b8114612ac657600080fd5b50565b600081359050612ad881612ab2565b92915050565b60008060408385031215612af557612af4612a40565b5b6000612b0385828601612a93565b9250506020612b1485828601612ac9565b9150509250929050565b60008115159050919050565b612b3381612b1e565b82525050565b6000602082019050612b4e6000830184612b2a565b92915050565b612b5d81612aa8565b82525050565b6000602082019050612b786000830184612b54565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612ba357612ba2612b7e565b5b8235905067ffffffffffffffff811115612bc057612bbf612b83565b5b602083019150836020820283011115612bdc57612bdb612b88565b5b9250929050565b612bec81612b1e565b8114612bf757600080fd5b50565b600081359050612c0981612be3565b92915050565b600080600060408486031215612c2857612c27612a40565b5b600084013567ffffffffffffffff811115612c4657612c45612a45565b5b612c5286828701612b8d565b93509350506020612c6586828701612bfa565b9150509250925092565b600080600060608486031215612c8857612c87612a40565b5b6000612c9686828701612a93565b9350506020612ca786828701612a93565b9250506040612cb886828701612ac9565b9150509250925092565b600080600080600080600060e0888a031215612ce157612ce0612a40565b5b6000612cef8a828b01612ac9565b9750506020612d008a828b01612ac9565b9650506040612d118a828b01612ac9565b9550506060612d228a828b01612ac9565b9450506080612d338a828b01612ac9565b93505060a0612d448a828b01612ac9565b92505060c0612d558a828b01612ac9565b91505092959891949750929550565b600060208284031215612d7a57612d79612a40565b5b6000612d8884828501612a93565b91505092915050565b600060ff82169050919050565b612da781612d91565b82525050565b6000602082019050612dc26000830184612d9e565b92915050565b60008060408385031215612ddf57612dde612a40565b5b6000612ded85828601612a93565b9250506020612dfe85828601612bfa565b9150509250929050565b612e1181612a6a565b82525050565b6000602082019050612e2c6000830184612e08565b92915050565b600080600060608486031215612e4b57612e4a612a40565b5b6000612e5986828701612a93565b9350506020612e6a86828701612a93565b9250506040612e7b86828701612a93565b9150509250925092565b600080600060608486031215612e9e57612e9d612a40565b5b6000612eac86828701612ac9565b9350506020612ebd86828701612ac9565b9250506040612ece86828701612ac9565b9150509250925092565b60008060408385031215612eef57612eee612a40565b5b6000612efd85828601612a93565b9250506020612f0e85828601612a93565b9150509250929050565b6000612f2382612a4a565b9050919050565b612f3381612f18565b8114612f3e57600080fd5b50565b600081359050612f5081612f2a565b92915050565b600060208284031215612f6c57612f6b612a40565b5b6000612f7a84828501612f41565b91505092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612fb9600683612999565b9150612fc482612f83565b602082019050919050565b60006020820190508181036000830152612fe881612fac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061305882612aa8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361308a5761308961301e565b5b600182019050919050565b7f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60008201527f6f7265207468616e203130302500000000000000000000000000000000000000602082015250565b60006130f1602d83612999565b91506130fc82613095565b604082019050919050565b60006020820190508181036000830152613120816130e4565b9050919050565b60008151905061313681612ab2565b92915050565b60006020828403121561315257613151612a40565b5b600061316084828501613127565b91505092915050565b600060408201905061317e6000830185612e08565b61318b6020830184612b54565b9392505050565b6000815190506131a181612be3565b92915050565b6000602082840312156131bd576131bc612a40565b5b60006131cb84828501613192565b91505092915050565b7f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560008201527f206c657373207468616e202e3525000000000000000000000000000000000000602082015250565b6000613230602e83612999565b915061323b826131d4565b604082019050919050565b6000602082019050818103600083015261325f81613223565b9050919050565b6000819050919050565b600061328b61328661328184612a4a565b613266565b612a4a565b9050919050565b600061329d82613270565b9050919050565b60006132af82613292565b9050919050565b6132bf816132a4565b82525050565b60006020820190506132da60008301846132b6565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061333c602483612999565b9150613347826132e0565b604082019050919050565b6000602082019050818103600083015261336b8161332f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006133ce602283612999565b91506133d982613372565b604082019050919050565b600060208201905081810360008301526133fd816133c1565b9050919050565b600061340f82612aa8565b915061341a83612aa8565b92508282039050818111156134325761343161301e565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613494602583612999565b915061349f82613438565b604082019050919050565b600060208201905081810360008301526134c381613487565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613526602383612999565b9150613531826134ca565b604082019050919050565b6000602082019050818103600083015261355581613519565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b60006135b8603183612999565b91506135c38261355c565b604082019050919050565b600060208201905081810360008301526135e7816135ab565b9050919050565b7f74726164696e67416c6c6f776564000000000000000000000000000000000000600082015250565b6000613624600e83612999565b915061362f826135ee565b602082019050919050565b6000602082019050818103600083015261365381613617565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b6000613690601e83612999565b915061369b8261365a565b602082019050919050565b600060208201905081810360008301526136bf81613683565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006136fc601183612999565b9150613707826136c6565b602082019050919050565b6000602082019050818103600083015261372b816136ef565b9050919050565b600061373d82612aa8565b915061374883612aa8565b92508282019050808211156137605761375f61301e565b5b92915050565b600061377182612aa8565b915061377c83612aa8565b925082820261378a81612aa8565b915082820484148315176137a1576137a061301e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137e282612aa8565b91506137ed83612aa8565b9250826137fd576137fc6137a8565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061384681612a7c565b92915050565b60006020828403121561386257613861612a40565b5b600061387084828501613837565b91505092915050565b6000819050919050565b600061389e61389961389484613879565b613266565b612aa8565b9050919050565b6138ae81613883565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138e981612a6a565b82525050565b60006138fb83836138e0565b60208301905092915050565b6000602082019050919050565b600061391f826138b4565b61392981856138bf565b9350613934836138d0565b8060005b8381101561396557815161394c88826138ef565b975061395783613907565b925050600181019050613938565b5085935050505092915050565b600060a0820190506139876000830188612b54565b61399460208301876138a5565b81810360408301526139a68186613914565b90506139b56060830185612e08565b6139c26080830184612b54565b9695505050505050565b600060c0820190506139e16000830189612e08565b6139ee6020830188612b54565b6139fb60408301876138a5565b613a0860608301866138a5565b613a156080830185612e08565b613a2260a0830184612b54565b979650505050505050565b600080600060608486031215613a4657613a45612a40565b5b6000613a5486828701613127565b9350506020613a6586828701613127565b9250506040613a7686828701613127565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204c62d746a462303c85f6d76427cdaa64b36a265ce0988ed0507b847ac1f1447264736f6c63430008130033

Deployed Bytecode Sourcemap

7428:11315:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9869:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10750:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10889:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13163:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18086:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11767:487;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10092:67;;;;;;;;;;;;;:::i;:::-;;6332:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10019:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7833:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10636:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13355:89;;;;;;;;;;;;;:::i;:::-;;10249:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9152:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9083:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9016:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10165:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13452:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12817:338;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9942:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11440:319;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7951:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10358:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10503:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12262:547;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6425:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9869:67;9906:13;9929:5;;;;;;;;;;;;;;;;;9922:12;;9869:67;:::o;10750:133::-;10825:4;10832:37;10841:10;10853:7;10862:6;10832:8;:37::i;:::-;10877:4;10870:11;;10750:133;;;;:::o;10889:132::-;10942:7;10959:60;10997:21;11015:1;10997:9;:21::i;:::-;10959:33;10976:15;8703:42;10976:9;:15::i;:::-;10959:12;;:16;;:33;;;;:::i;:::-;:37;;:60;;;;:::i;:::-;10952:67;;10889:132;:::o;13163:184::-;6291:19;6299:10;6291:7;:19::i;:::-;6283:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13260:6:::1;13256:84;13274:9;;:16;;13270:1;:20;13256:84;;;13329:8;13307:5;:19;13313:9;;13323:1;13313:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;13307:19;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;13292:3;;;;;:::i;:::-;;;;13256:84;;;;13163:184:::0;;;:::o;18086:309::-;18184:4;18201:36;18211:6;18219:9;18230:6;18201:9;:36::i;:::-;18248:117;18257:6;18265:10;18277:87;18313:6;18277:87;;;;;;;;;;;;;;;;;:11;:19;18289:6;18277:19;;;;;;;;;;;;;;;:31;18297:10;18277:31;;;;;;;;;;;;;;;;:35;;:87;;;;;:::i;:::-;18248:8;:117::i;:::-;18383:4;18376:11;;18086:309;;;;;:::o;11767:487::-;6291:19;6299:10;6291:7;:19::i;:::-;6283:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11955:10:::1;11940:12;:25;;;;11982:10;11967:12;:25;;;;12004:5;11994:7;:15;;;;12028:12;12011:14;:29;;;;12053:6;12042:8;:17;;;;12071:5;12061:7;:15;;;;12092:6;12078:11;:20;;;;12129:11;;12117:8;;:23;;:49;;;;;12155:11;;12144:7;;:22;;12117:49;:79;;;;;12185:11;;12170;;:26;;12117:79;12109:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;11767:487:::0;;;;;;;:::o;10092:67::-;6291:19;6299:10;6291:7;:19::i;:::-;6283:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10153:4:::1;10136:14;;:21;;;;;;;;;;;;;;;;;;10092:67::o:0;6332:87::-;6387:4;6412:5;;;;;;;;;;;6401:16;;:7;:16;;;6394:23;;6332:87;;;:::o;10019:67::-;10060:5;7638:2;10068:16;;10019:67;:::o;7833:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;10636:108::-;6291:19;6299:10;6291:7;:19::i;:::-;6283:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10734:8:::1;10710:11;:21;10722:8;10710:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;10636:108:::0;;:::o;13355:89::-;6291:19;6299:10;6291:7;:19::i;:::-;6283:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13407:29:::1;13422:13;;13407:14;:29::i;:::-;13355:89::o:0;10249:103::-;10315:7;10332:9;:18;10342:7;10332:18;;;;;;;;;;;;;;;;10325:25;;10249:103;;;:::o;9152:63::-;;;;:::o;9083:62::-;;;;:::o;9016:60::-;;;;:::o;10165:78::-;10217:7;10235:5;;;;;;;;;;;10228:12;;10165:78;:::o;13452:242::-;6291:19;6299:10;6291:7;:19::i;:::-;6283:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13538:15:::1;13556:63;13615:3;13556:54;13602:7;13563:8;13556:26;;;13591:4;13556:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54;;;;:::i;:::-;:58;;:63;;;;:::i;:::-;13538:81;;13637:8;13630:25;;;13656:20;;;;;;;;;;;13678:7;13630:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13527:167;13452:242:::0;;:::o;12817:338::-;6291:19;6299:10;6291:7;:19::i;:::-;6283:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12960:10:::1;12939:18;;:31;;;;;;;;;;;;;;;;;;12993:10;12972:18;;:31;;;;;;;;;;;;;;;;;;13028:12;13005:20;;:35;;;;;;;;;;;;;;;;;;13077:4;13051:11;:23;13063:10;13051:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;13109:4;13083:11;:23;13095:10;13083:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;13143:4;13115:11;:25;13127:12;13115:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12817:338:::0;;;:::o;9942:71::-;9981:13;10004:7;;;;;;;;;;;;;;;;;9997:14;;9942:71;:::o;11440:319::-;6291:19;6299:10;6291:7;:19::i;:::-;6283:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11586:11:::1;11573:10;:24;;;;11615:53;11660:6;11615:32;11632:14;11615:12;;:16;;:32;;;;:::i;:::-;:36;;:53;;;;:::i;:::-;11599:13;:69;;;;11697:54;11743:6;11697:33;11714:15;11697:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;11680:14;:71;;;;11440:319:::0;;;:::o;7951:19::-;;;;;;;;;;;;;:::o;10358:139::-;10436:4;10443:40;10453:10;10465:9;10476:6;10443:9;:40::i;:::-;10491:4;10484:11;;10358:139;;;;:::o;10503:127::-;10584:7;10601:11;:18;10613:5;10601:18;;;;;;;;;;;;;;;:27;10620:7;10601:27;;;;;;;;;;;;;;;;10594:34;;10503:127;;;;:::o;12262:547::-;6291:19;6299:10;6291:7;:19::i;:::-;6283:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12359:13:::1;12375:33;12402:5;12375:22;12392:4;12375:12;;:16;;:22;;;;:::i;:::-;:26;;:33;;;;:::i;:::-;12359:49;;12410:19;12432:34;12460:5;12432:23;12449:5;12432:12;;:16;;:23;;;;:::i;:::-;:27;;:34;;;;:::i;:::-;12410:56;;12468:17;12488:36;12518:5;12488:25;12505:7;12488:12;;:16;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;12468:56;;12550:5;12535:12;:20;;;;12574:11;12557:14;:28;;;;12605:9;12587:15;:27;;;;12625:13;12641:30;12666:4;12641:20;12659:1;12641:13;:11;:13::i;:::-;:17;;:20;;;;:::i;:::-;:24;;:30;;;;:::i;:::-;12625:46;;12699:5;12690;:14;;:38;;;;;12723:5;12708:11;:20;;12690:38;:60;;;;;12745:5;12732:9;:18;;12690:60;12682:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;12348:461;;;;12262:547:::0;;;:::o;6425:111::-;6291:19;6299:10;6291:7;:19::i;:::-;6283:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;6499:3:::1;6491:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;6509:25;6530:3;6509:25;;;;;;:::i;:::-;;;;;;;;6425:111:::0;:::o;18403:335::-;18513:1;18496:19;;:5;:19;;;18488:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18594:1;18575:21;;:7;:21;;;18567:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18676:6;18646:11;:18;18658:5;18646:18;;;;;;;;;;;;;;;:27;18665:7;18646:27;;;;;;;;;;;;;;;:36;;;;18714:7;18698:32;;18707:5;18698:32;;;18723:6;18698:32;;;;;;:::i;:::-;;;;;;;;18403:335;;;:::o;4071:98::-;4129:7;4160:1;4156;:5;;;;:::i;:::-;4149:12;;4071:98;;;;:::o;16645:1433::-;16760:1;16742:20;;:6;:20;;;16734:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;16844:1;16823:23;;:9;:23;;;16815:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16915:17;16925:6;16915:9;:17::i;:::-;16905:6;:27;;16897:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;17000:11;:19;17012:6;17000:19;;;;;;;;;;;;;;;;;;;;;;;;;16999:20;:47;;;;;17024:11;:22;17036:9;17024:22;;;;;;;;;;;;;;;;;;;;;;;;;17023:23;16999:47;16996:95;;;17056:14;;;;;;;;;;;17048:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;16996:95;17105:11;:19;17117:6;17105:19;;;;;;;;;;;;;;;;;;;;;;;;;17104:20;:47;;;;;17129:11;:22;17141:9;17129:22;;;;;;;;;;;;;;;;;;;;;;;;;17128:23;17104:47;:77;;;;;17176:4;;;;;;;;;;;17155:26;;:9;:26;;;;17104:77;:107;;;;;8703:42;17185:26;;:9;:26;;;;17104:107;17101:220;;;17269:15;;17232:32;17257:6;17232:9;:20;17242:9;17232:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17231:53;;17223:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;17101:220;17344:4;;;;;;;;;;;17334:14;;:6;:14;;;17331:124;;17368:14;;17358:6;:24;;:47;;;;17386:11;:19;17398:6;17386:19;;;;;;;;;;;;;;;;;;;;;;;;;17358:47;:73;;;;17409:11;:22;17421:9;17409:22;;;;;;;;;;;;;;;;;;;;;;;;;17358:73;17350:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;17331:124;17483:12;;17473:6;:22;;:45;;;;17499:11;:19;17511:6;17499:19;;;;;;;;;;;;;;;;;;;;;;;;;17473:45;:71;;;;17522:11;:22;17534:9;17522:22;;;;;;;;;;;;;;;;;;;;;;;;;17473:71;17465:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;17594:4;;;;;;;;;;;17581:17;;:9;:17;;;:41;;;;;17603:11;:19;17615:6;17603:19;;;;;;;;;;;;;;;;;;;;;;;;;17602:20;17581:41;17578:71;;;17645:1;17624:9;;:23;;;;;;;:::i;:::-;;;;;;;;17578:71;17662:45;17681:6;17689:9;17700:6;17662:18;:45::i;:::-;17659:105;;;17709:29;17724:13;;17709:14;:29::i;:::-;17760:1;17740:9;:22;;;;17659:105;17794:29;17816:6;17794:9;:17;17804:6;17794:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;17774:9;:17;17784:6;17774:17;;;;;;;;;;;;;;;:49;;;;17834:22;17859:32;17873:6;17881:9;17859:13;:32::i;:::-;:78;;17931:6;17859:78;;;17894:34;17902:6;17910:9;17921:6;17894:7;:34::i;:::-;17859:78;17834:103;;17971:40;17996:14;17971:9;:20;17981:9;17971:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;17948:9;:20;17958:9;17948:20;;;;;;;;;;;;;;;:63;;;;18044:9;18027:43;;18036:6;18027:43;;;18055:14;18027:43;;;;;;:::i;:::-;;;;;;;;16723:1355;16645:1433;;;:::o;4495:240::-;4615:7;4673:1;4668;:6;;4676:12;4660:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4715:1;4711;:5;4704:12;;4495:240;;;;;:::o;13702:1063::-;8320:4;8309:8;;:15;;;;;;;;;;;;;;;;;;13773:20:::1;13796:66;13860:1;13797:57;13839:14;;13797:37;13821:12;;13797:19;13814:1;13797:12;;:16;;:19;;;;:::i;:::-;:23;;:37;;;;:::i;:::-;:41;;:57;;;;:::i;:::-;13796:63;;:66;;;;:::i;:::-;13773:89;;13873:32;13908:42;13937:12;13908:24;13919:12;;13908:6;:10;;:24;;;;:::i;:::-;:28;;:42;;;;:::i;:::-;13873:77;;13961:14;13978:36;13989:24;13978:6;:10;;:36;;;;:::i;:::-;13961:53;;14025:22;14050:21;14025:46;;14082:24;14099:6;14082:16;:24::i;:::-;14117:20;14140:41;14166:14;14140:21;:25;;:41;;;;:::i;:::-;14117:64;;14192:19;14213:48;14230:30;14247:12;;14230;:16;;:30;;;;:::i;:::-;14213:12;:16;;:48;;;;:::i;:::-;14192:69;;14272:29;14304;14320:12;;14304:11;:15;;:29;;;;:::i;:::-;14272:61;;14379:1;14347:21;:34;14344:103;;;14383:61;14396:24;14422:21;14383:12;:61::i;:::-;14344:103;14457:20;14480:36;14503:12;;14480:18;14496:1;14480:11;:15;;:18;;;;:::i;:::-;:22;;:36;;;;:::i;:::-;14457:59;;14545:1;14530:12;:16;14527:73;;;14556:18;;;;;;;;;;;14548:36;;:50;14585:12;14548:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14527:73;14610:23;14636:21;14610:47;;14697:1;14671:15;:28;14668:90;;;14709:20;;;;;;;;;;;14701:38;;:55;14740:15;14701:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14668:90;13762:1003;;;;;;;;;8340:5:::0;8329:8;;:16;;;;;;;;;;;;;;;;;;13702:1063;:::o;4177:98::-;4235:7;4266:1;4262;:5;;;;:::i;:::-;4255:12;;4177:98;;;;:::o;4283:::-;4341:7;4372:1;4368;:5;;;;:::i;:::-;4361:12;;4283:98;;;;:::o;3965:::-;4023:7;4054:1;4050;:5;;;;:::i;:::-;4043:12;;3965:98;;;;:::o;11029:403::-;11131:4;11148:13;11174:14;;11164:6;:24;;11148:40;;11199:19;11249:13;;11221:24;11239:4;11221:9;:24::i;:::-;:41;;11199:63;;11281:8;;;;;;;;;;;11280:9;:24;;;;;11293:11;;;;;;;;;;;11280:24;:42;;;;;11308:14;;;;;;;;;;;11280:42;:54;;;;;11326:8;11280:54;:78;;;;;11339:11;:19;11351:6;11339:19;;;;;;;;;;;;;;;;;;;;;;;;;11338:20;11280:78;:99;;;;;11375:4;;;;;;;;;;;11362:17;;:9;:17;;;11280:99;:126;;;;;11396:10;;11383:9;;:23;;11280:126;:144;;;;;11410:14;11280:144;11273:151;;;;11029:403;;;;;:::o;15566:160::-;15647:4;15672:11;:19;15684:6;15672:19;;;;;;;;;;;;;;;;;;;;;;;;;15671:20;:47;;;;;15696:11;:22;15708:9;15696:22;;;;;;;;;;;;;;;;;;;;;;;;;15695:23;15671:47;15664:54;;15566:160;;;;:::o;16047:590::-;16133:7;16189:1;16156:30;16168:6;16176:9;16156:11;:30::i;:::-;:34;16153:462;;;16202:17;16222:59;16250:30;16262:6;16270:9;16250:11;:30::i;:::-;16222:23;16233:11;;16222:6;:10;;:23;;;;:::i;:::-;:27;;:59;;;;:::i;:::-;16202:79;;16319:39;16348:9;16319;:24;16337:4;16319:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;16292:9;:24;16310:4;16292:24;;;;;;;;;;;;;;;:66;;;;16399:4;16374:42;;16383:6;16374:42;;;16406:9;16374:42;;;;;;:::i;:::-;;;;;;;;16448:1;16430:7;;:20;:64;;;;;16487:7;;16454:30;16466:6;16474:9;16454:11;:30::i;:::-;:40;16430:64;16427:148;;;16496:77;16514:4;8703:42;16536:36;16564:7;;16536:23;16547:11;;16536:6;:10;;:23;;;;:::i;:::-;:27;;:36;;;;:::i;:::-;16496:9;:77::i;:::-;16427:148;16592:21;16603:9;16592:6;:10;;:21;;;;:::i;:::-;16585:28;;;;;16153:462;16623:6;16616:13;;16047:590;;;;;;:::o;15124:434::-;15190:21;15228:1;15214:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15190:40;;15259:4;15241;15246:1;15241:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;15285:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15275:4;15280:1;15275:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;15309:53;15326:4;15341:6;;;;;;;;;;;15350:11;15309:8;:53::i;:::-;15373:6;;;;;;;;;;;:57;;;15445:11;15471:1;15487:4;15514;15534:15;15373:177;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15179:379;15124:434;:::o;14773:343::-;14854:53;14871:4;14886:6;;;;;;;;;;;14895:11;14854:8;:53::i;:::-;14918:6;;;;;;;;;;;:22;;;14948:9;14981:4;15001:11;15027:1;15043;15059:18;;;;;;;;;;;15092:15;14918:190;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14773:343;;:::o;15734:305::-;15813:7;15836:5;:13;15842:6;15836:13;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;15853:5;:16;15859:9;15853:16;;;;;;;;;;;;;;;;;;;;;;;;;15836:33;15833:76;;;15878:29;15902:3;15878:11;;:15;;:29;;;;:::i;:::-;15871:36;;;;15833:76;15935:4;;;;;;;;;;;15922:17;;:9;:17;;;15919:38;;15948:7;;15941:14;;;;15919:38;15980:4;;;;;;;;;;;15970:14;;:6;:14;;;15967:36;;15993:8;;15986:15;;;;15967:36;16020:11;;16013:18;;15734:305;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:117::-;3907:1;3904;3897:12;3921:117;4030:1;4027;4020:12;4044:117;4153:1;4150;4143:12;4184:568;4257:8;4267:6;4317:3;4310:4;4302:6;4298:17;4294:27;4284:122;;4325:79;;:::i;:::-;4284:122;4438:6;4425:20;4415:30;;4468:18;4460:6;4457:30;4454:117;;;4490:79;;:::i;:::-;4454:117;4604:4;4596:6;4592:17;4580:29;;4658:3;4650:4;4642:6;4638:17;4628:8;4624:32;4621:41;4618:128;;;4665:79;;:::i;:::-;4618:128;4184:568;;;;;:::o;4758:116::-;4828:21;4843:5;4828:21;:::i;:::-;4821:5;4818:32;4808:60;;4864:1;4861;4854:12;4808:60;4758:116;:::o;4880:133::-;4923:5;4961:6;4948:20;4939:29;;4977:30;5001:5;4977:30;:::i;:::-;4880:133;;;;:::o;5019:698::-;5111:6;5119;5127;5176:2;5164:9;5155:7;5151:23;5147:32;5144:119;;;5182:79;;:::i;:::-;5144:119;5330:1;5319:9;5315:17;5302:31;5360:18;5352:6;5349:30;5346:117;;;5382:79;;:::i;:::-;5346:117;5495:80;5567:7;5558:6;5547:9;5543:22;5495:80;:::i;:::-;5477:98;;;;5273:312;5624:2;5650:50;5692:7;5683:6;5672:9;5668:22;5650:50;:::i;:::-;5640:60;;5595:115;5019:698;;;;;:::o;5723:619::-;5800:6;5808;5816;5865:2;5853:9;5844:7;5840:23;5836:32;5833:119;;;5871:79;;:::i;:::-;5833:119;5991:1;6016:53;6061:7;6052:6;6041:9;6037:22;6016:53;:::i;:::-;6006:63;;5962:117;6118:2;6144:53;6189:7;6180:6;6169:9;6165:22;6144:53;:::i;:::-;6134:63;;6089:118;6246:2;6272:53;6317:7;6308:6;6297:9;6293:22;6272:53;:::i;:::-;6262:63;;6217:118;5723:619;;;;;:::o;6348:1203::-;6461:6;6469;6477;6485;6493;6501;6509;6558:3;6546:9;6537:7;6533:23;6529:33;6526:120;;;6565:79;;:::i;:::-;6526:120;6685:1;6710:53;6755:7;6746:6;6735:9;6731:22;6710:53;:::i;:::-;6700:63;;6656:117;6812:2;6838:53;6883:7;6874:6;6863:9;6859:22;6838:53;:::i;:::-;6828:63;;6783:118;6940:2;6966:53;7011:7;7002:6;6991:9;6987:22;6966:53;:::i;:::-;6956:63;;6911:118;7068:2;7094:53;7139:7;7130:6;7119:9;7115:22;7094:53;:::i;:::-;7084:63;;7039:118;7196:3;7223:53;7268:7;7259:6;7248:9;7244:22;7223:53;:::i;:::-;7213:63;;7167:119;7325:3;7352:53;7397:7;7388:6;7377:9;7373:22;7352:53;:::i;:::-;7342:63;;7296:119;7454:3;7481:53;7526:7;7517:6;7506:9;7502:22;7481:53;:::i;:::-;7471:63;;7425:119;6348:1203;;;;;;;;;;:::o;7557:329::-;7616:6;7665:2;7653:9;7644:7;7640:23;7636:32;7633:119;;;7671:79;;:::i;:::-;7633:119;7791:1;7816:53;7861:7;7852:6;7841:9;7837:22;7816:53;:::i;:::-;7806:63;;7762:117;7557:329;;;;:::o;7892:86::-;7927:7;7967:4;7960:5;7956:16;7945:27;;7892:86;;;:::o;7984:112::-;8067:22;8083:5;8067:22;:::i;:::-;8062:3;8055:35;7984:112;;:::o;8102:214::-;8191:4;8229:2;8218:9;8214:18;8206:26;;8242:67;8306:1;8295:9;8291:17;8282:6;8242:67;:::i;:::-;8102:214;;;;:::o;8322:468::-;8387:6;8395;8444:2;8432:9;8423:7;8419:23;8415:32;8412:119;;;8450:79;;:::i;:::-;8412:119;8570:1;8595:53;8640:7;8631:6;8620:9;8616:22;8595:53;:::i;:::-;8585:63;;8541:117;8697:2;8723:50;8765:7;8756:6;8745:9;8741:22;8723:50;:::i;:::-;8713:60;;8668:115;8322:468;;;;;:::o;8796:118::-;8883:24;8901:5;8883:24;:::i;:::-;8878:3;8871:37;8796:118;;:::o;8920:222::-;9013:4;9051:2;9040:9;9036:18;9028:26;;9064:71;9132:1;9121:9;9117:17;9108:6;9064:71;:::i;:::-;8920:222;;;;:::o;9148:619::-;9225:6;9233;9241;9290:2;9278:9;9269:7;9265:23;9261:32;9258:119;;;9296:79;;:::i;:::-;9258:119;9416:1;9441:53;9486:7;9477:6;9466:9;9462:22;9441:53;:::i;:::-;9431:63;;9387:117;9543:2;9569:53;9614:7;9605:6;9594:9;9590:22;9569:53;:::i;:::-;9559:63;;9514:118;9671:2;9697:53;9742:7;9733:6;9722:9;9718:22;9697:53;:::i;:::-;9687:63;;9642:118;9148:619;;;;;:::o;9773:::-;9850:6;9858;9866;9915:2;9903:9;9894:7;9890:23;9886:32;9883:119;;;9921:79;;:::i;:::-;9883:119;10041:1;10066:53;10111:7;10102:6;10091:9;10087:22;10066:53;:::i;:::-;10056:63;;10012:117;10168:2;10194:53;10239:7;10230:6;10219:9;10215:22;10194:53;:::i;:::-;10184:63;;10139:118;10296:2;10322:53;10367:7;10358:6;10347:9;10343:22;10322:53;:::i;:::-;10312:63;;10267:118;9773:619;;;;;:::o;10398:474::-;10466:6;10474;10523:2;10511:9;10502:7;10498:23;10494:32;10491:119;;;10529:79;;:::i;:::-;10491:119;10649:1;10674:53;10719:7;10710:6;10699:9;10695:22;10674:53;:::i;:::-;10664:63;;10620:117;10776:2;10802:53;10847:7;10838:6;10827:9;10823:22;10802:53;:::i;:::-;10792:63;;10747:118;10398:474;;;;;:::o;10878:104::-;10923:7;10952:24;10970:5;10952:24;:::i;:::-;10941:35;;10878:104;;;:::o;10988:138::-;11069:32;11095:5;11069:32;:::i;:::-;11062:5;11059:43;11049:71;;11116:1;11113;11106:12;11049:71;10988:138;:::o;11132:155::-;11186:5;11224:6;11211:20;11202:29;;11240:41;11275:5;11240:41;:::i;:::-;11132:155;;;;:::o;11293:345::-;11360:6;11409:2;11397:9;11388:7;11384:23;11380:32;11377:119;;;11415:79;;:::i;:::-;11377:119;11535:1;11560:61;11613:7;11604:6;11593:9;11589:22;11560:61;:::i;:::-;11550:71;;11506:125;11293:345;;;;:::o;11644:156::-;11784:8;11780:1;11772:6;11768:14;11761:32;11644:156;:::o;11806:365::-;11948:3;11969:66;12033:1;12028:3;11969:66;:::i;:::-;11962:73;;12044:93;12133:3;12044:93;:::i;:::-;12162:2;12157:3;12153:12;12146:19;;11806:365;;;:::o;12177:419::-;12343:4;12381:2;12370:9;12366:18;12358:26;;12430:9;12424:4;12420:20;12416:1;12405:9;12401:17;12394:47;12458:131;12584:4;12458:131;:::i;:::-;12450:139;;12177:419;;;:::o;12602:180::-;12650:77;12647:1;12640:88;12747:4;12744:1;12737:15;12771:4;12768:1;12761:15;12788:180;12836:77;12833:1;12826:88;12933:4;12930:1;12923:15;12957:4;12954:1;12947:15;12974:233;13013:3;13036:24;13054:5;13036:24;:::i;:::-;13027:33;;13082:66;13075:5;13072:77;13069:103;;13152:18;;:::i;:::-;13069:103;13199:1;13192:5;13188:13;13181:20;;12974:233;;;:::o;13213:232::-;13353:34;13349:1;13341:6;13337:14;13330:58;13422:15;13417:2;13409:6;13405:15;13398:40;13213:232;:::o;13451:366::-;13593:3;13614:67;13678:2;13673:3;13614:67;:::i;:::-;13607:74;;13690:93;13779:3;13690:93;:::i;:::-;13808:2;13803:3;13799:12;13792:19;;13451:366;;;:::o;13823:419::-;13989:4;14027:2;14016:9;14012:18;14004:26;;14076:9;14070:4;14066:20;14062:1;14051:9;14047:17;14040:47;14104:131;14230:4;14104:131;:::i;:::-;14096:139;;13823:419;;;:::o;14248:143::-;14305:5;14336:6;14330:13;14321:22;;14352:33;14379:5;14352:33;:::i;:::-;14248:143;;;;:::o;14397:351::-;14467:6;14516:2;14504:9;14495:7;14491:23;14487:32;14484:119;;;14522:79;;:::i;:::-;14484:119;14642:1;14667:64;14723:7;14714:6;14703:9;14699:22;14667:64;:::i;:::-;14657:74;;14613:128;14397:351;;;;:::o;14754:332::-;14875:4;14913:2;14902:9;14898:18;14890:26;;14926:71;14994:1;14983:9;14979:17;14970:6;14926:71;:::i;:::-;15007:72;15075:2;15064:9;15060:18;15051:6;15007:72;:::i;:::-;14754:332;;;;;:::o;15092:137::-;15146:5;15177:6;15171:13;15162:22;;15193:30;15217:5;15193:30;:::i;:::-;15092:137;;;;:::o;15235:345::-;15302:6;15351:2;15339:9;15330:7;15326:23;15322:32;15319:119;;;15357:79;;:::i;:::-;15319:119;15477:1;15502:61;15555:7;15546:6;15535:9;15531:22;15502:61;:::i;:::-;15492:71;;15448:125;15235:345;;;;:::o;15586:233::-;15726:34;15722:1;15714:6;15710:14;15703:58;15795:16;15790:2;15782:6;15778:15;15771:41;15586:233;:::o;15825:366::-;15967:3;15988:67;16052:2;16047:3;15988:67;:::i;:::-;15981:74;;16064:93;16153:3;16064:93;:::i;:::-;16182:2;16177:3;16173:12;16166:19;;15825:366;;;:::o;16197:419::-;16363:4;16401:2;16390:9;16386:18;16378:26;;16450:9;16444:4;16440:20;16436:1;16425:9;16421:17;16414:47;16478:131;16604:4;16478:131;:::i;:::-;16470:139;;16197:419;;;:::o;16622:60::-;16650:3;16671:5;16664:12;;16622:60;;;:::o;16688:142::-;16738:9;16771:53;16789:34;16798:24;16816:5;16798:24;:::i;:::-;16789:34;:::i;:::-;16771:53;:::i;:::-;16758:66;;16688:142;;;:::o;16836:126::-;16886:9;16919:37;16950:5;16919:37;:::i;:::-;16906:50;;16836:126;;;:::o;16968:134::-;17026:9;17059:37;17090:5;17059:37;:::i;:::-;17046:50;;16968:134;;;:::o;17108:147::-;17203:45;17242:5;17203:45;:::i;:::-;17198:3;17191:58;17108:147;;:::o;17261:238::-;17362:4;17400:2;17389:9;17385:18;17377:26;;17413:79;17489:1;17478:9;17474:17;17465:6;17413:79;:::i;:::-;17261:238;;;;:::o;17505:223::-;17645:34;17641:1;17633:6;17629:14;17622:58;17714:6;17709:2;17701:6;17697:15;17690:31;17505:223;:::o;17734:366::-;17876:3;17897:67;17961:2;17956:3;17897:67;:::i;:::-;17890:74;;17973:93;18062:3;17973:93;:::i;:::-;18091:2;18086:3;18082:12;18075:19;;17734:366;;;:::o;18106:419::-;18272:4;18310:2;18299:9;18295:18;18287:26;;18359:9;18353:4;18349:20;18345:1;18334:9;18330:17;18323:47;18387:131;18513:4;18387:131;:::i;:::-;18379:139;;18106:419;;;:::o;18531:221::-;18671:34;18667:1;18659:6;18655:14;18648:58;18740:4;18735:2;18727:6;18723:15;18716:29;18531:221;:::o;18758:366::-;18900:3;18921:67;18985:2;18980:3;18921:67;:::i;:::-;18914:74;;18997:93;19086:3;18997:93;:::i;:::-;19115:2;19110:3;19106:12;19099:19;;18758:366;;;:::o;19130:419::-;19296:4;19334:2;19323:9;19319:18;19311:26;;19383:9;19377:4;19373:20;19369:1;19358:9;19354:17;19347:47;19411:131;19537:4;19411:131;:::i;:::-;19403:139;;19130:419;;;:::o;19555:194::-;19595:4;19615:20;19633:1;19615:20;:::i;:::-;19610:25;;19649:20;19667:1;19649:20;:::i;:::-;19644:25;;19693:1;19690;19686:9;19678:17;;19717:1;19711:4;19708:11;19705:37;;;19722:18;;:::i;:::-;19705:37;19555:194;;;;:::o;19755:224::-;19895:34;19891:1;19883:6;19879:14;19872:58;19964:7;19959:2;19951:6;19947:15;19940:32;19755:224;:::o;19985:366::-;20127:3;20148:67;20212:2;20207:3;20148:67;:::i;:::-;20141:74;;20224:93;20313:3;20224:93;:::i;:::-;20342:2;20337:3;20333:12;20326:19;;19985:366;;;:::o;20357:419::-;20523:4;20561:2;20550:9;20546:18;20538:26;;20610:9;20604:4;20600:20;20596:1;20585:9;20581:17;20574:47;20638:131;20764:4;20638:131;:::i;:::-;20630:139;;20357:419;;;:::o;20782:222::-;20922:34;20918:1;20910:6;20906:14;20899:58;20991:5;20986:2;20978:6;20974:15;20967:30;20782:222;:::o;21010:366::-;21152:3;21173:67;21237:2;21232:3;21173:67;:::i;:::-;21166:74;;21249:93;21338:3;21249:93;:::i;:::-;21367:2;21362:3;21358:12;21351:19;;21010:366;;;:::o;21382:419::-;21548:4;21586:2;21575:9;21571:18;21563:26;;21635:9;21629:4;21625:20;21621:1;21610:9;21606:17;21599:47;21663:131;21789:4;21663:131;:::i;:::-;21655:139;;21382:419;;;:::o;21807:236::-;21947:34;21943:1;21935:6;21931:14;21924:58;22016:19;22011:2;22003:6;21999:15;21992:44;21807:236;:::o;22049:366::-;22191:3;22212:67;22276:2;22271:3;22212:67;:::i;:::-;22205:74;;22288:93;22377:3;22288:93;:::i;:::-;22406:2;22401:3;22397:12;22390:19;;22049:366;;;:::o;22421:419::-;22587:4;22625:2;22614:9;22610:18;22602:26;;22674:9;22668:4;22664:20;22660:1;22649:9;22645:17;22638:47;22702:131;22828:4;22702:131;:::i;:::-;22694:139;;22421:419;;;:::o;22846:164::-;22986:16;22982:1;22974:6;22970:14;22963:40;22846:164;:::o;23016:366::-;23158:3;23179:67;23243:2;23238:3;23179:67;:::i;:::-;23172:74;;23255:93;23344:3;23255:93;:::i;:::-;23373:2;23368:3;23364:12;23357:19;;23016:366;;;:::o;23388:419::-;23554:4;23592:2;23581:9;23577:18;23569:26;;23641:9;23635:4;23631:20;23627:1;23616:9;23612:17;23605:47;23669:131;23795:4;23669:131;:::i;:::-;23661:139;;23388:419;;;:::o;23813:180::-;23953:32;23949:1;23941:6;23937:14;23930:56;23813:180;:::o;23999:366::-;24141:3;24162:67;24226:2;24221:3;24162:67;:::i;:::-;24155:74;;24238:93;24327:3;24238:93;:::i;:::-;24356:2;24351:3;24347:12;24340:19;;23999:366;;;:::o;24371:419::-;24537:4;24575:2;24564:9;24560:18;24552:26;;24624:9;24618:4;24614:20;24610:1;24599:9;24595:17;24588:47;24652:131;24778:4;24652:131;:::i;:::-;24644:139;;24371:419;;;:::o;24796:167::-;24936:19;24932:1;24924:6;24920:14;24913:43;24796:167;:::o;24969:366::-;25111:3;25132:67;25196:2;25191:3;25132:67;:::i;:::-;25125:74;;25208:93;25297:3;25208:93;:::i;:::-;25326:2;25321:3;25317:12;25310:19;;24969:366;;;:::o;25341:419::-;25507:4;25545:2;25534:9;25530:18;25522:26;;25594:9;25588:4;25584:20;25580:1;25569:9;25565:17;25558:47;25622:131;25748:4;25622:131;:::i;:::-;25614:139;;25341:419;;;:::o;25766:191::-;25806:3;25825:20;25843:1;25825:20;:::i;:::-;25820:25;;25859:20;25877:1;25859:20;:::i;:::-;25854:25;;25902:1;25899;25895:9;25888:16;;25923:3;25920:1;25917:10;25914:36;;;25930:18;;:::i;:::-;25914:36;25766:191;;;;:::o;25963:410::-;26003:7;26026:20;26044:1;26026:20;:::i;:::-;26021:25;;26060:20;26078:1;26060:20;:::i;:::-;26055:25;;26115:1;26112;26108:9;26137:30;26155:11;26137:30;:::i;:::-;26126:41;;26316:1;26307:7;26303:15;26300:1;26297:22;26277:1;26270:9;26250:83;26227:139;;26346:18;;:::i;:::-;26227:139;26011:362;25963:410;;;;:::o;26379:180::-;26427:77;26424:1;26417:88;26524:4;26521:1;26514:15;26548:4;26545:1;26538:15;26565:185;26605:1;26622:20;26640:1;26622:20;:::i;:::-;26617:25;;26656:20;26674:1;26656:20;:::i;:::-;26651:25;;26695:1;26685:35;;26700:18;;:::i;:::-;26685:35;26742:1;26739;26735:9;26730:14;;26565:185;;;;:::o;26756:180::-;26804:77;26801:1;26794:88;26901:4;26898:1;26891:15;26925:4;26922:1;26915:15;26942:143;26999:5;27030:6;27024:13;27015:22;;27046:33;27073:5;27046:33;:::i;:::-;26942:143;;;;:::o;27091:351::-;27161:6;27210:2;27198:9;27189:7;27185:23;27181:32;27178:119;;;27216:79;;:::i;:::-;27178:119;27336:1;27361:64;27417:7;27408:6;27397:9;27393:22;27361:64;:::i;:::-;27351:74;;27307:128;27091:351;;;;:::o;27448:85::-;27493:7;27522:5;27511:16;;27448:85;;;:::o;27539:158::-;27597:9;27630:61;27648:42;27657:32;27683:5;27657:32;:::i;:::-;27648:42;:::i;:::-;27630:61;:::i;:::-;27617:74;;27539:158;;;:::o;27703:147::-;27798:45;27837:5;27798:45;:::i;:::-;27793:3;27786:58;27703:147;;:::o;27856:114::-;27923:6;27957:5;27951:12;27941:22;;27856:114;;;:::o;27976:184::-;28075:11;28109:6;28104:3;28097:19;28149:4;28144:3;28140:14;28125:29;;27976:184;;;;:::o;28166:132::-;28233:4;28256:3;28248:11;;28286:4;28281:3;28277:14;28269:22;;28166:132;;;:::o;28304:108::-;28381:24;28399:5;28381:24;:::i;:::-;28376:3;28369:37;28304:108;;:::o;28418:179::-;28487:10;28508:46;28550:3;28542:6;28508:46;:::i;:::-;28586:4;28581:3;28577:14;28563:28;;28418:179;;;;:::o;28603:113::-;28673:4;28705;28700:3;28696:14;28688:22;;28603:113;;;:::o;28752:732::-;28871:3;28900:54;28948:5;28900:54;:::i;:::-;28970:86;29049:6;29044:3;28970:86;:::i;:::-;28963:93;;29080:56;29130:5;29080:56;:::i;:::-;29159:7;29190:1;29175:284;29200:6;29197:1;29194:13;29175:284;;;29276:6;29270:13;29303:63;29362:3;29347:13;29303:63;:::i;:::-;29296:70;;29389:60;29442:6;29389:60;:::i;:::-;29379:70;;29235:224;29222:1;29219;29215:9;29210:14;;29175:284;;;29179:14;29475:3;29468:10;;28876:608;;;28752:732;;;;:::o;29490:831::-;29753:4;29791:3;29780:9;29776:19;29768:27;;29805:71;29873:1;29862:9;29858:17;29849:6;29805:71;:::i;:::-;29886:80;29962:2;29951:9;29947:18;29938:6;29886:80;:::i;:::-;30013:9;30007:4;30003:20;29998:2;29987:9;29983:18;29976:48;30041:108;30144:4;30135:6;30041:108;:::i;:::-;30033:116;;30159:72;30227:2;30216:9;30212:18;30203:6;30159:72;:::i;:::-;30241:73;30309:3;30298:9;30294:19;30285:6;30241:73;:::i;:::-;29490:831;;;;;;;;:::o;30327:807::-;30576:4;30614:3;30603:9;30599:19;30591:27;;30628:71;30696:1;30685:9;30681:17;30672:6;30628:71;:::i;:::-;30709:72;30777:2;30766:9;30762:18;30753:6;30709:72;:::i;:::-;30791:80;30867:2;30856:9;30852:18;30843:6;30791:80;:::i;:::-;30881;30957:2;30946:9;30942:18;30933:6;30881:80;:::i;:::-;30971:73;31039:3;31028:9;31024:19;31015:6;30971:73;:::i;:::-;31054;31122:3;31111:9;31107:19;31098:6;31054:73;:::i;:::-;30327:807;;;;;;;;;:::o;31140:663::-;31228:6;31236;31244;31293:2;31281:9;31272:7;31268:23;31264:32;31261:119;;;31299:79;;:::i;:::-;31261:119;31419:1;31444:64;31500:7;31491:6;31480:9;31476:22;31444:64;:::i;:::-;31434:74;;31390:128;31557:2;31583:64;31639:7;31630:6;31619:9;31615:22;31583:64;:::i;:::-;31573:74;;31528:129;31696:2;31722:64;31778:7;31769:6;31758:9;31754:22;31722:64;:::i;:::-;31712:74;;31667:129;31140:663;;;;;:::o

Swarm Source

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