Contract 0xdC4Bf310b5C685A25031580682568fDB1cD55658

 

Contract Overview

Balance:
0.00606684910207149 BNB

BNB Value:
$3.43 (@ $564.82/BNB)

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x89f636271b5285ae0b7843feb42be7c94d19f42c93695e5fd44f365dcc9e690fApprove130523472021-11-29 14:48:195 days 14 hrs ago0xa1a592cdfb8623360524d2da5b4ddf6a63426917 IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.000073075
0x8d513773f42b1f0135f261e3e941da65f11509d2b6986865b4caf067dedff703Approve126669512021-11-15 10:21:1119 days 18 hrs ago0x3dcbb93469d7a4e339a511897a40c9a637c45b2c IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.000073075
0xa2baac4d41a54fb8a6d9245bf10b66990f2ad9b07e1150c89ce68c3e1f8a095aApprove126016122021-11-13 2:07:3422 days 3 hrs ago0xf389178e5d7f52ffea99f9e5040e2fd101eaae66 IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.000073075
0x78f951e35c0529c05b0e28485fea54fce8650b4286d2bc72a7d5dbae0292bfe6Approve125353722021-11-10 17:07:5424 days 12 hrs ago0x7c1e70e2c3a7cbb3d26304d653932f3d0e782c3e IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.000073075
0x54fcb5ba6a6c9553157fb73bd06cd4975c473d1374892b304f82f80069f4d054Approve125189072021-11-10 2:26:5625 days 2 hrs ago0x74a5a6f7758e4d7e914f50be2a568cc0014ff0ed IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.000073075
0x1cf3d03cb293132b943f214e6d1af1ce7652369b676fca213e239d47a1f00023Approve125021732021-11-09 12:17:3325 days 16 hrs ago0x7cf4a5d4f4c6ee070588b02babc46f233a875ce5 IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.00022307
0x00a87a5edc3bf891664d19b00d08aa70b466b0a8d0d651e8f57bce7eba1932aeApprove123985272021-11-05 21:15:3029 days 8 hrs ago0xc2adb353ba1722a6b43bdde4ff113da29c85c6e4 IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.000073075
0xe0a48dbce1c3d0956ee439764c0a4ef8a094b2c06442cffb06b4a2608b7a7cd9Approve123711692021-11-04 22:08:5530 days 7 hrs ago0x20a8e493761ca87143170ee263574f9d1387ee4c IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.000073075
0xe7c468770845e945c88a9ac37a6df6e4871a9cbf900a71ee02124f268e5aec0eApprove122297622021-10-30 20:50:5735 days 8 hrs ago0x3545aae1a7b96422c9003c63818975ab846bec03 IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.000073075
0x650189a236317083c4f478e655e94f0baf5b1df5710a3e5cf12df47492284c1bApprove122071062021-10-30 1:44:5136 days 3 hrs ago0x4f3e08c70a890905a7f24b33927adb267f0e3083 IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.000102305
0x89dced3b402aed18f7d4a018a987b45893c73c33ac8c051d2fe8c781ca8854edApprove119236102021-10-20 1:45:5546 days 3 hrs ago0xff5f5c34998959978ccd9cd898b54a12d498a03a IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.000073075
0x888324c950b9ea45f60aee8672ea184c0ec4df252352d9c8ce84810823430f54Approve116683762021-10-11 2:36:1055 days 2 hrs ago0x3cbb112b7c59febaf95af02d2dee8b01b9957649 IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.000073075
0x6a79f412a7a203978386be4821193ef7680e2141ba8f30bd776913b43be68523Approve116041052021-10-08 20:52:4757 days 8 hrs ago0x98ffaf291c3caf8cfd6b0fc3dfd6c8bfd9b55301 IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.000073075
0x4d6c23031d16f8bf14cca881ba3fc5245eb79ce7c574e91a3023c1448e349cbdApprove113730272021-09-30 19:24:4165 days 9 hrs ago0xa6069d39c02d80a7dec3adebc5ab0fdf0c8ea625 IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.000073075
0x2422bd4c020104a63ad581f2132a830bc48b49fcd1161d6222bacb6a2f591868Approve111650892021-09-23 12:41:3872 days 16 hrs ago0x391ac619a3299f38af5b93078af35609d02c8497 IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.000102305
0xa22f1b3a7128387aadd4161556f3cc245b770c2bdb21fb18338744fbfe04cad9Approve111372762021-09-22 13:19:2073 days 15 hrs ago0x0801964739ceffc59b3390ddbc851553c7585eae IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.000073075
0x25c7bec1be65532f7754e368323a2690c2e5a6179d441d8c932f20e28d9046ffApprove111258502021-09-22 3:44:3774 days 1 hr ago0x3c55002f6f5e315aed52e3f81c1a7593436da950 IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.00022307
0x1ccb8ff226a5a18c622e456f136fb37addb322ae8278141438bdf7b1824081e2Approve111116672021-09-21 15:46:5274 days 13 hrs ago0xfbfd735394ba4a3c9856add0b6578b30b90a2f0d IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.00022307
0x048575d5c70b95533e04aae77752a98371e13e144bdb390685feae44cd92e2edApprove110741032021-09-20 8:23:2875 days 20 hrs ago0x431c0c5ea810185345d9a4784ce3ad6be7219ab9 IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.00022307
0x9217060331caada3a53b3896938d80b4236a9d5a670e958840549def5e309254Approve110540092021-09-19 15:38:3576 days 13 hrs ago0x7fd9640939b0cf5ed1ddddec98b79be8128fbad2 IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.000073075
0x1bc8b8c2f60d2f295847a43cea71b5b58ef2c3877263ae73a3659d7640d6ea26Approve110495932021-09-19 11:57:4476 days 17 hrs ago0xb35f5791477adeda54823e93ac8e89f38bf8803a IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.000073075
0xc5f40bf04a1999ce161775f6a77c5ed08790ded440331f877edefc1e2ead8921Approve109669902021-09-16 14:46:0879 days 14 hrs ago0xdfc98cebbc21e37203d7cc14714d30a7aa042ef0 IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.000073075
0x3834c65faa89bd1b9572b71f5349c995d613ed05febb6107cd6c078319e8ff20Approve109662312021-09-16 14:08:1179 days 15 hrs ago0x3f0fb4d14c4cc223419619b50390077da3801fe4 IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.000073075
0x7574c627cec3877cebf9a4ffaa9df6b6f618612f90717e375f27fd14a2b1c9a3Approve109417942021-09-15 17:44:1780 days 11 hrs ago0x9a81bb6666e80d7d6a977c7eef937f06bb645eed IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.000073075
0x9c83faa7c3ba16b510cf2c134fe98ae5eb6fbcaa07acb3fe1dc43a78414210b0Approve108739852021-09-13 9:01:0682 days 20 hrs ago0x4d30a2022151d9c81ad51608a750c8f568614ea3 IN  0xdc4bf310b5c685a25031580682568fdb1cd556580 BNB0.00022307
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KingOfTheDoge

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-07-30
*/

// SPDX-License-Identifier: NOLICENSE	
pragma solidity ^0.8.0;	
/* King Of The Doge:	
* Reflection 1%	
* Burn 1%	
* Treasury 4%	
* Capture The Flag 1%	
* TopDog 3%	
* 	
* Amount to capture the flag: at least 2.5M tokens	
*	
* To become topDog: buy more than previous topDog	
* topDog's reign lasts 4 hours, after that BurnAddress becomes TopDog temporarily	
* if topDog does a transfer he loses his topDog status	
*	
* Antiwhale:	
* max amount per buy/sell: 1% of initial supply (10M tokens)	
*	
*	
* Dev: @MochieCrypto (https://twitter.com/MochieCrypto)	
*	
* https://twitter.com/kingofdogebsc 	
*	
*/


interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}




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

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

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

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

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

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

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

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

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

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

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

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

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



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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}



library Address {
    function isContract(address account) internal view returns (bool) {

        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) private pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}




abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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

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

interface IRouter {
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn, 
        uint amountOutMin, 
        address[] calldata path, 
        address to, 
        uint deadline) external; 
}


//"ETH" symb is used for better uniswap-core integration
//uniswap is use due to their better repo management

contract KingOfTheDoge is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcluded;
    mapping (address => bool) private _isExcludedFromMaxTx;
    mapping (address => bool) private _isBot;

    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping (address => automatedMarketMakerPairsStruct) public automatedMarketMakerPairs;

    address[] private _excluded;
    
    bool public tradingEnabled;
    uint256 public tradingEnabledTimestamp;
    bool public swapEnabled;
    bool private swapping;
    bool public captureTheFlagEnabled = true;
    bool public topDogEnabled = true;
    
    IRouter public router;

    uint8 private constant _decimals = 9;
    uint256 private constant MAX = ~uint256(0);

    uint256 private _tTotal = 10* 10**9 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    uint256 public _maxTxAmount = _tTotal/100;
    uint256 public _maxWalletBalance = _tTotal/100;
    uint256 public swapTokensAtAmount = 500000 * 10**_decimals;

    address public treasuryAddress;
    address private BURNADDR = 0x000000000000000000000000000000000000dEaD;

    address public flagHolder;
    uint256 public flagStolenTimestamp;
    uint256 private resetTimerCTF = 1 days;
    uint256 public flagChangeTarget = 25* 10**5 * 10**_decimals; //buy at least 2.5M tokens to capture the flag


    string private constant _name = "King Of The Doge";	
    string private constant _symbol = "KOTDOGE";
    
    struct automatedMarketMakerPairsStruct{
        bool isPair;
        uint256 supply;
    }
    
    struct feeRatesStruct {
      uint256 rfi;
      uint256 burn;
      uint256 treasury;
      uint256 captureTheFlag;
      uint256 topDog;
    }

    feeRatesStruct public feeRates = feeRatesStruct(
     {rfi: 1,         //autoreflection rate, in %
      burn: 1,   //burn fee in %
      treasury: 4,  //treasury fee in %
      captureTheFlag: 1, //capture the flag fee in %
      topDog: 3 //Top dog fee %
    });

    struct TotFeesPaidStruct{
        uint256 rfi;
        uint256 burn;
        uint256 treasury;
        uint256 captureTheFlag;
        uint256 topDog;
    }
    TotFeesPaidStruct public totFeesPaid;

    struct TopDogData{
        address topDogAddr;
        uint256 topDogAmount;
        uint256 topDogSince;
    }

    TopDogData public topDog;
    
    struct Top10Dog {
        address addr;
        uint balance;
    }
    
    Top10Dog[10] public top10Dogs;
    Top10Dog[10] private resetTop10;

    uint256 topDogLimitSeconds;

    struct valuesFromGetValues{
      uint256 rAmount;
      uint256 rTransferAmount;
      uint256 rRfi;
      uint256 rBurn;
      uint256 rTreasury;
      uint256 rCaptureTheFlag;
      uint256 rTopDog;
      uint256 tTransferAmount;
      uint256 tRfi;
      uint256 tBurn;
      uint256 tTreasury;
      uint256 tCaptureTheFlag;
      uint256 tTopDog;
    }

    event FeesChanged();
    event TopDog(address indexed account, uint256 time);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event FlagStolen(address newFlagHolder, address oldFlagHolder);
    event UpdatedTreasuryWallet(address oldWallet, address newWallet);
    event UpdatedFlagChangeTarget(uint256 oldTarget, uint256 newTarget);
    event TradingEnabled(uint256 startDate);
    event UpdatedRouter(address oldRouter, address newRouter);
    event FlagReset(address oldFlagHolder, address burnAdd);
    
    modifier lockTheSwap {
        swapping = true;
        _;
        swapping = false;
    }
    
    constructor (address routerAddress) {
        _rOwned[owner()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        treasuryAddress= owner();
        _isExcludedFromFee[treasuryAddress]=true;
        _isExcludedFromFee[address(this)]=true;
        flagHolder=BURNADDR;
        _isExcluded[BURNADDR]=true;
        _excluded.push(BURNADDR);
        _isExcludedFromMaxTx[owner()]= true;
        router = IRouter(routerAddress);
        topDogLimitSeconds=4*1 hours;
        topDog.topDogAddr = BURNADDR;
        emit Transfer(address(0), owner(), _tTotal);
    }

    //std ERC20:
    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;
    }

    //override ERC20:
    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }

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

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

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

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

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

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferRfi) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferRfi) {
            valuesFromGetValues memory s = _getValues(tAmount, true);
            return s.rAmount;
        } else {
            valuesFromGetValues memory s = _getValues(tAmount, true);
            return s.rTransferAmount;
        }
    }

     function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
        automatedMarketMakerPairs[pair].isPair = value;
        if(value)
        {
            uint256 lpSupply = getCurrentLPSupply(pair);
            automatedMarketMakerPairs[pair].supply = lpSupply;
        }
        emit SetAutomatedMarketMakerPair(pair, value);
    }
    
    function startTrading() external onlyOwner{
        tradingEnabled = true;
        swapEnabled = true;
        tradingEnabledTimestamp = block.timestamp;
        emit TradingEnabled(tradingEnabledTimestamp);
    }


    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount/currentRate;
    }

    //@dev kept original RFI naming -> "reward" as in reflection
    function excludeFromReward(address account) public onlyOwner() {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeInReward(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is not excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }


    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function excludeFromMaxTx(address account) external onlyOwner {
        _isExcludedFromMaxTx[account] = true;
    }

    function includeFromMaxTx(address account) external onlyOwner {
        _isExcludedFromMaxTx[account] = false;
    }

    function isExcludedFromMaxTx(address account) external view returns(bool) {
        return _isExcludedFromMaxTx[account];
    }

    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

    function setFeeRates(uint256 _rfi, uint256 _burn, uint256 _treasury, uint256 _captureTheFlag, uint256 _topDog) public onlyOwner {
      feeRates.rfi = _rfi;
      feeRates.burn = _burn;
      feeRates.treasury = _treasury;
      feeRates.captureTheFlag = _captureTheFlag;
      feeRates.topDog = _topDog;
      emit FeesChanged();
    }

    function _reflectRfi(uint256 rRfi, uint256 tRfi) private {
        _rTotal -=rRfi;
        totFeesPaid.rfi +=tRfi;
    }

    function _takeBurn(uint256 rBurn, uint256 tBurn) private {
        totFeesPaid.burn +=tBurn;
        if(_isExcluded[BURNADDR]){
             _tOwned[BURNADDR]+=tBurn;
        }
        _rOwned[BURNADDR] +=rBurn;
         
    }

    function _takeTreasury(uint256 rTreasury, uint256 tTreasury) private {
        totFeesPaid.treasury +=tTreasury;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tTreasury;
        }
        _rOwned[address(this)] +=rTreasury;
    }

    function _takeCaptureTheFlag(uint256 rFlag, uint256 tFlag) private {
        totFeesPaid.captureTheFlag +=tFlag;

        if(_isExcluded[flagHolder])
        {
            _tOwned[flagHolder]+=tFlag;
        }
        _rOwned[flagHolder] +=rFlag;
    }

    function _takeTopDog(uint256 rTopDog, uint256 tTopDog) private {
        totFeesPaid.topDog +=tTopDog;

        if(_isExcluded[topDog.topDogAddr])
        {
            _tOwned[topDog.topDogAddr]+=tTopDog;
        }
        _rOwned[topDog.topDogAddr] +=rTopDog;
    }

    function _getValues(uint256 tAmount, bool takeFee) private view returns (valuesFromGetValues memory to_return) {
        to_return = _getTValues(tAmount, takeFee);
        (to_return.rAmount, to_return.rTransferAmount, to_return.rRfi,to_return.rBurn, to_return.rTreasury, to_return.rCaptureTheFlag, to_return.rTopDog) = _getRValues(to_return, tAmount, takeFee, _getRate());
        return to_return;
    }

    function _getTValues(uint256 tAmount, bool takeFee) private view returns (valuesFromGetValues memory s) {

        if(!takeFee) {
          s.tTransferAmount = tAmount;
          return s;
        }
        s.tRfi = tAmount*feeRates.rfi/100;
        s.tBurn = tAmount*feeRates.burn/100;
        s.tTreasury = tAmount*feeRates.treasury/100;
        s.tCaptureTheFlag = tAmount*feeRates.captureTheFlag/100;
        s.tTopDog = tAmount*feeRates.topDog/100;
        s.tTransferAmount = tAmount-s.tRfi-s.tBurn-s.tTreasury-s.tCaptureTheFlag-s.tTopDog;
        return s;
    }

    function _getRValues(valuesFromGetValues memory s, uint256 tAmount, bool takeFee, uint256 currentRate) private pure returns (uint256 rAmount, uint256 rTransferAmount, uint256 rRfi, uint256 rBurn,uint256 rTreasury, uint256 rCaptureTheFlag, uint256 rTopDog) {
        rAmount = tAmount*currentRate;

        if(!takeFee) {
          return(rAmount, rAmount, 0,0,0,0,0);
        }

        rRfi = s.tRfi*currentRate;
        rBurn = s.tBurn*currentRate;
        rTreasury = s.tTreasury*currentRate;
        rCaptureTheFlag = s.tCaptureTheFlag*currentRate;
        rTopDog = s.tTopDog*currentRate;
        rTransferAmount =  rAmount-rRfi-rBurn-rTreasury-rCaptureTheFlag-rTopDog;
        return (rAmount, rTransferAmount, rRfi,rBurn,rTreasury,rCaptureTheFlag, rTopDog);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply/tSupply;
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply-_rOwned[_excluded[i]];
            tSupply = tSupply-_tOwned[_excluded[i]];
        }
        if (rSupply < _rTotal/_tTotal) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }


    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 from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(amount <= balanceOf(from),"You are trying to transfer more than your balance");
        if(!_isExcludedFromMaxTx[from] && !_isExcludedFromMaxTx[to]){
            require(tradingEnabled, "Trading is not enabled yet");
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            if(!automatedMarketMakerPairs[to].isPair) {
                require(balanceOf(to).add(amount) <= _maxWalletBalance, 'Balance is exceeding maxWalletBalance');
            }
        }
        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance >= swapTokensAtAmount;
        if(!swapping && swapEnabled && canSwap && !automatedMarketMakerPairs[from].isPair){
            swapAndSendToFee(swapTokensAtAmount);
        }
        
        _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]));
    }
    
    function _resetCaptureTheFlag() internal {
        emit FlagReset(flagHolder, BURNADDR);
        flagHolder = BURNADDR;
        flagStolenTimestamp = 0;
    }
    
    function resetCaptureTheFlag() external onlyOwner{
        _resetCaptureTheFlag();
    }
    
    function resetTopDog() external onlyOwner{
        _resetTopDog();
    }
    
    function _resetTopDog() internal{
        topDog.topDogAddr = BURNADDR;
        topDog.topDogAmount = 0;
        topDog.topDogSince = block.timestamp;
        top10Dogs = resetTop10;
        emit TopDog(BURNADDR, block.timestamp);
    }
    
    function getCurrentLPSupply(address pair) public view returns(uint256) {
        return IERC20(pair).totalSupply();
    }
    
    function setTop10Dogs(address addr, uint currentValue) private {
        uint i = 0;
        for(uint j = top10Dogs.length - 1; j > i; j--) {
            top10Dogs[j].balance = top10Dogs[j - 1].balance;
            top10Dogs[j].addr = top10Dogs[j - 1].addr;
        }
        top10Dogs[i].balance = currentValue;
        top10Dogs[i].addr = addr;
    }
    

    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee) private {

        valuesFromGetValues memory s = _getValues(tAmount, takeFee);

        if(automatedMarketMakerPairs[sender].isPair)
        {   
            uint256 pairSupply = getCurrentLPSupply(sender);
            if(pairSupply < automatedMarketMakerPairs[sender].supply){ //user is removing liquidity
                automatedMarketMakerPairs[sender].supply = pairSupply;
            }
            else
            { //user is buying
                if(captureTheFlagEnabled){
                    if(tAmount < flagChangeTarget && block.timestamp > (resetTimerCTF + flagStolenTimestamp)){
                        _resetCaptureTheFlag();
                    }
                    else if(tAmount>=flagChangeTarget && recipient != flagHolder)
                    {
                        emit FlagStolen(recipient,flagHolder);
                        flagHolder = recipient;
                        flagStolenTimestamp = block.timestamp;
                    }
                }
    
                if(tAmount >= topDog.topDogAmount && topDogEnabled) {
                    topDog.topDogAddr = recipient;
                    topDog.topDogAmount = tAmount;
                    topDog.topDogSince = block.timestamp;
                    setTop10Dogs(recipient, tAmount);
                    emit TopDog(recipient, topDog.topDogSince);
                }
            }
        }   // top dog can be dethroned after time limit or if they transfer OR sell
        else if(sender == topDog.topDogAddr) {
            _resetTopDog();
        }
        
        if(automatedMarketMakerPairs[recipient].isPair)
        {
          uint256 pairSupply = getCurrentLPSupply(recipient);
            if(pairSupply > automatedMarketMakerPairs[recipient].supply){ //user is adding liquidity
                automatedMarketMakerPairs[recipient].supply = pairSupply;
            }
        }

        // top dog gets automatically dethroned after 4h
        if(block.timestamp > topDog.topDogSince + topDogLimitSeconds) {
            _resetTopDog();
        }

        if (_isExcluded[sender] ) {  //from excluded
                _tOwned[sender] = _tOwned[sender]-tAmount;
        }
        if (_isExcluded[recipient]) { //to excluded
                _tOwned[recipient] = _tOwned[recipient]+s.tTransferAmount;
        }

        _rOwned[sender] = _rOwned[sender]-s.rAmount;
        _rOwned[recipient] = _rOwned[recipient]+s.rTransferAmount;
        if(takeFee)
        {
        _reflectRfi(s.rRfi, s.tRfi);
        _takeBurn(s.rBurn,s.tBurn);
        _takeTreasury(s.rTreasury,s.tTreasury);
        _takeCaptureTheFlag(s.rCaptureTheFlag, s.tCaptureTheFlag);
        _takeTopDog(s.rTopDog, s.tTopDog);
        emit Transfer(sender, BURNADDR, s.tBurn);
        emit Transfer(sender, address(this), s.tTreasury);
        emit Transfer(sender, flagHolder, s.tCaptureTheFlag);
        emit Transfer(sender, topDog.topDogAddr, s.tTopDog);
        }
        emit Transfer(sender, recipient, s.tTransferAmount);
    }
    
    function swapAndSendToFee(uint256 tokens) private lockTheSwap{
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        
        _approve(address(this), address(router), tokens);
 
        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokens,
            0, // accept any amount of ETH
            path,
            treasuryAddress,
            block.timestamp
        );
    }
    
    function updateTreasuryWallet(address newWallet) external onlyOwner{
        require(treasuryAddress != newWallet ,'Wallet already set');
        emit UpdatedTreasuryWallet(treasuryAddress, newWallet);
        treasuryAddress = newWallet;
        _isExcludedFromFee[treasuryAddress];
        _isExcludedFromMaxTx[treasuryAddress];
    }
    
    function updateFlagChangeTarget(uint256 newTarget) external onlyOwner{
        require(newTarget <= (_tTotal * 20 / 100), 'New target must be less then 20% of total supply');
        emit UpdatedFlagChangeTarget(flagChangeTarget, newTarget);
        flagChangeTarget = newTarget * 10**_decimals;
    }
    
    function updateMaxTxAmount(uint256 amount) external onlyOwner{
        _maxTxAmount = amount * 10**_decimals;
    }
    
    function updateMaxWalletBalance(uint256 amount) external onlyOwner{
        _maxWalletBalance = amount * 10**_decimals;
    }
    
    function updateRouter(IRouter newRouter) external onlyOwner{
        require(router != newRouter, "Router already set");
        emit UpdatedRouter(address(router), address(newRouter));
        router = newRouter;
    }
    
    function updateSwapTokensAtAmount(uint256 amount) external onlyOwner{
        swapTokensAtAmount = amount * 10**_decimals;
    }
    
    function updateSwapEnabled(bool _enabled) external onlyOwner{
        swapEnabled = _enabled;
    }
    
    function updateTopDogEnabled(bool _enabled) external onlyOwner{
        topDogEnabled = _enabled;
    }
    
    function updateCaptureTheFlagEnabled(bool _enabled) external onlyOwner{
        captureTheFlagEnabled = _enabled;
    }
    
    function setAntibot(address account, bool _bot) external onlyOwner{
        require(_isBot[account] != _bot, 'Value already set');
        _isBot[account] = _bot;
    }
    
    function isBot(address account) public view returns(bool){
        return _isBot[account];
    }
    
    //Use this in case BNB are sent to the contract by mistake
    function rescueBNB(uint256 weiAmount) external onlyOwner{
        require(address(this).balance >= weiAmount, "insufficient BNB balance");
        payable(msg.sender).transfer(weiAmount);
    }
    
    receive() external payable{
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"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":[],"name":"FeesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldFlagHolder","type":"address"},{"indexed":false,"internalType":"address","name":"burnAdd","type":"address"}],"name":"FlagReset","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newFlagHolder","type":"address"},{"indexed":false,"internalType":"address","name":"oldFlagHolder","type":"address"}],"name":"FlagStolen","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"TopDog","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"startDate","type":"uint256"}],"name":"TradingEnabled","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldTarget","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTarget","type":"uint256"}],"name":"UpdatedFlagChangeTarget","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldRouter","type":"address"},{"indexed":false,"internalType":"address","name":"newRouter","type":"address"}],"name":"UpdatedRouter","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldWallet","type":"address"},{"indexed":false,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedTreasuryWallet","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"isPair","type":"bool"},{"internalType":"uint256","name":"supply","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"captureTheFlagEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeRates","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"treasury","type":"uint256"},{"internalType":"uint256","name":"captureTheFlag","type":"uint256"},{"internalType":"uint256","name":"topDog","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"flagChangeTarget","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"flagHolder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"flagStolenTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"getCurrentLPSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeFromMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxTx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetCaptureTheFlag","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetTopDog","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"_bot","type":"bool"}],"name":"setAntibot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_treasury","type":"uint256"},{"internalType":"uint256","name":"_captureTheFlag","type":"uint256"},{"internalType":"uint256","name":"_topDog","type":"uint256"}],"name":"setFeeRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"top10Dogs","outputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"topDog","outputs":[{"internalType":"address","name":"topDogAddr","type":"address"},{"internalType":"uint256","name":"topDogAmount","type":"uint256"},{"internalType":"uint256","name":"topDogSince","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"topDogEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"treasury","type":"uint256"},{"internalType":"uint256","name":"captureTheFlag","type":"uint256"},{"internalType":"uint256","name":"topDog","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabledTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateCaptureTheFlagEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTarget","type":"uint256"}],"name":"updateFlagChangeTarget","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"newRouter","type":"address"}],"name":"updateRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateTopDogEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600c805463ff0000001962ff0000199091166201000017166301000000179055620000326009600a6200047f565b62000043906402540be4006200056a565b600d8190556200005690600019620005a6565b62000064906000196200058c565b600e556064600d546200007891906200041b565b600f556064600d546200008c91906200041b565b6010556200009d6009600a6200047f565b620000ac906207a1206200056a565b601155601380546001600160a01b03191661dead17905562015180601655620000d86009600a6200047f565b620000e790622625a06200056a565b6017556040805160a0810182526001808252602082018190526004928201839052606082018190526003608090920182905260188190556019819055601a92909255601b91909155601c553480156200013f57600080fd5b50604051620042d9380380620042d98339810160408190526200016291620003e2565b62000176620001706200037f565b62000383565b600e546001600062000187620003d3565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160046000620001c1620003d360201b60201c565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055620001f3620003d3565b601280546001600160a01b039283166001600160a01b031991821617918290559082166000908152600460209081526040808320805460ff199081166001908117909255308552828520805482168317905560138054601480548916918a169182179055865260059094529184208054909216811790915590546009805480840182559084527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af018054909416941693909317909155600690620002b6620003d3565b6001600160a01b0390811682526020820192909252604001600020805460ff191692151592909217909155600c8054600160201b600160c01b03191664010000000084841602179055613840604d5560135460228054919092166001600160a01b031990911617905562000329620003d3565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d5460405162000370919062000412565b60405180910390a350620005e9565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031690565b600060208284031215620003f4578081fd5b81516001600160a01b03811681146200040b578182fd5b9392505050565b90815260200190565b6000826200042d576200042d620005d3565b500490565b80825b600180861162000446575062000476565b8187048211156200045b576200045b620005bd565b808616156200046957918102915b9490941c93800262000435565b94509492505050565b60006200040b60001960ff8516846000826200049e575060016200040b565b81620004ad575060006200040b565b8160018114620004c65760028114620004d15762000505565b60019150506200040b565b60ff841115620004e557620004e5620005bd565b6001841b915084821115620004fe57620004fe620005bd565b506200040b565b5060208310610133831016604e8410600b84101617156200053d575081810a83811115620005375762000537620005bd565b6200040b565b6200054c848484600162000432565b808604821115620005615762000561620005bd565b02949350505050565b6000816000190483118215151615620005875762000587620005bd565b500290565b600082821015620005a157620005a1620005bd565b500390565b600082620005b857620005b8620005d3565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b613ce080620005f96000396000f3fe6080604052600436106103a65760003560e01c80637688c584116101e7578063b26291891161010d578063dd62ed3e116100a0578063ea2f0b371161006f578063ea2f0b3714610a52578063f2fde38b14610a72578063f76fedb614610a92578063f887ea4014610ab2576103ad565b8063dd62ed3e146109e8578063e116554514610a08578063e1e56d7c14610a28578063e2f4560514610a3d576103ad565b8063d257b34f116100dc578063d257b34f1461097e578063d40bc1f51461099e578063d4a5af84146109b3578063db4cf1e0146109c8576103ad565b8063b2629189146108fb578063b62496f51461091b578063c5f956af14610949578063c851cc321461095e576103ad565b8063924de9b7116101855780639ba5e4d5116101545780639ba5e4d514610891578063a271ed55146108a6578063a457c2d7146108bb578063a9059cbb146108db576103ad565b8063924de9b71461082757806395d89b41146108475780639620d95d1461085c5780639a7a23d614610871576103ad565b806386dc662f116101c157806386dc662f146107bd57806388f82020146107dd5780638c573afc146107fd5780638da5cb5b14610812576103ad565b80637688c584146107625780637d1db4a514610788578063809d458d1461079d576103ad565b8063437823ec116102cc578063638e38461161026a5780636ddd1713116102395780636ddd17131461070357806370a0823114610718578063715018a6146107385780637452b3bc1461074d576103ad565b8063638e38461461067f578063658c27a91461069f57806368ca6145146106bf5780636baef212146106df576103ad565b80634ada218b116102a65780634ada218b1461060a57806352390c021461061f5780635342acb41461063f5780636256d1811461065f576103ad565b8063437823ec146105aa578063441b1d30146105ca5780634549b039146105ea576103ad565b8063293230b8116103445780633685d419116103135780633685d4191461052a578063395093511461054a5780633bbac5791461056a5780633bd0c5121461058a576103ad565b8063293230b8146104b15780632d838119146104c65780632ded7716146104e6578063313ce56714610508576103ad565b8063188b1bf111610380578063188b1bf11461042c5780631c6cac5e1461044e57806323b872dd1461047c57806325b617031461049c576103ad565b806306fdde03146103b2578063095ea7b3146103dd57806318160ddd1461040a576103ad565b366103ad57005b600080fd5b3480156103be57600080fd5b506103c7610ac7565b6040516103d49190613470565b60405180910390f35b3480156103e957600080fd5b506103fd6103f836600461331c565b610af1565b6040516103d49190613455565b34801561041657600080fd5b5061041f610b0f565b6040516103d491906139a3565b34801561043857600080fd5b5061044c610447366004613361565b610b15565b005b34801561045a57600080fd5b5061046e610469366004613361565b610b79565b6040516103d492919061341b565b34801561048857600080fd5b506103fd6104973660046132a8565b610ba5565b3480156104a857600080fd5b5061041f610c2d565b3480156104bd57600080fd5b5061044c610c33565b3480156104d257600080fd5b5061041f6104e1366004613361565b610ccd565b3480156104f257600080fd5b506104fb610d10565b6040516103d491906133ed565b34801561051457600080fd5b5061051d610d1f565b6040516103d49190613a4d565b34801561053657600080fd5b5061044c610545366004613238565b610d24565b34801561055657600080fd5b506103fd61056536600461331c565b610ef9565b34801561057657600080fd5b506103fd610585366004613238565b610f48565b34801561059657600080fd5b5061044c6105a5366004613347565b610f66565b3480156105b657600080fd5b5061044c6105c5366004613238565b610fc1565b3480156105d657600080fd5b5061044c6105e5366004613361565b611024565b3480156105f657600080fd5b5061041f610605366004613391565b6110b0565b34801561061657600080fd5b506103fd61110a565b34801561062b57600080fd5b5061044c61063a366004613238565b611113565b34801561064b57600080fd5b506103fd61065a366004613238565b61124b565b34801561066b57600080fd5b5061044c61067a366004613361565b611269565b34801561068b57600080fd5b5061044c61069a366004613238565b6112c4565b3480156106ab57600080fd5b506103fd6106ba366004613238565b611324565b3480156106cb57600080fd5b5061044c6106da3660046133b3565b611342565b3480156106eb57600080fd5b506106f46113ca565b6040516103d493929190613434565b34801561070f57600080fd5b506103fd6113e2565b34801561072457600080fd5b5061041f610733366004613238565b6113eb565b34801561074457600080fd5b5061044c61144d565b34801561075957600080fd5b5061044c611498565b34801561076e57600080fd5b506107776114df565b6040516103d4959493929190613a2a565b34801561079457600080fd5b5061041f6114f1565b3480156107a957600080fd5b5061044c6107b8366004613238565b6114f7565b3480156107c957600080fd5b5061044c6107d8366004613361565b6115d4565b3480156107e957600080fd5b506103fd6107f8366004613238565b6116a4565b34801561080957600080fd5b5061041f6116c2565b34801561081e57600080fd5b506104fb6116c8565b34801561083357600080fd5b5061044c610842366004613347565b6116d7565b34801561085357600080fd5b506103c7611729565b34801561086857600080fd5b506103fd61174a565b34801561087d57600080fd5b5061044c61088c3660046132e8565b61175a565b34801561089d57600080fd5b5061077761182b565b3480156108b257600080fd5b5061041f61183d565b3480156108c757600080fd5b506103fd6108d636600461331c565b611843565b3480156108e757600080fd5b506103fd6108f636600461331c565b6118ab565b34801561090757600080fd5b5061044c610916366004613347565b6118bf565b34801561092757600080fd5b5061093b610936366004613238565b61191c565b6040516103d4929190613460565b34801561095557600080fd5b506104fb61193b565b34801561096a57600080fd5b5061044c610979366004613238565b61194a565b34801561098a57600080fd5b5061044c610999366004613361565b611a3b565b3480156109aa57600080fd5b5061044c611a96565b3480156109bf57600080fd5b5061041f611add565b3480156109d457600080fd5b5061044c6109e3366004613238565b611ae3565b3480156109f457600080fd5b5061041f610a03366004613270565b611b46565b348015610a1457600080fd5b5061044c610a233660046132e8565b611b71565b348015610a3457600080fd5b506103fd611c1a565b348015610a4957600080fd5b5061041f611c29565b348015610a5e57600080fd5b5061044c610a6d366004613238565b611c2f565b348015610a7e57600080fd5b5061044c610a8d366004613238565b611c8f565b348015610a9e57600080fd5b5061041f610aad366004613238565b611d00565b348015610abe57600080fd5b506104fb611d73565b60408051808201909152601081526f4b696e67204f662054686520446f676560801b602082015290565b6000610b05610afe611d8a565b8484611d8e565b5060015b92915050565b600d5490565b610b1d611d8a565b6001600160a01b0316610b2e6116c8565b6001600160a01b031614610b5d5760405162461bcd60e51b8152600401610b54906137f4565b60405180910390fd5b610b696009600a613ad9565b610b739082613baa565b60105550565b602581600a8110610b8957600080fd5b6002020180546001909101546001600160a01b03909116915082565b6000610bb2848484611e42565b610c2284610bbe611d8a565b610c1d85604051806060016040528060288152602001613c3e602891396001600160a01b038a16600090815260036020526040812090610bfc611d8a565b6001600160a01b031681526020810191909152604001600020549190612078565b611d8e565b5060015b9392505050565b600b5481565b610c3b611d8a565b6001600160a01b0316610c4c6116c8565b6001600160a01b031614610c725760405162461bcd60e51b8152600401610b54906137f4565b600a8054600160ff199182168117909255600c8054909116909117905542600b8190556040517fb3da2db3dfc3778f99852546c6e9ab39ec253f9de7b0847afec61bd27878e92391610cc3916139a3565b60405180910390a1565b6000600e54821115610cf15760405162461bcd60e51b8152600401610b54906135b9565b6000610cfb6120a4565b9050610d078184613a73565b9150505b919050565b6014546001600160a01b031681565b600990565b610d2c611d8a565b6001600160a01b0316610d3d6116c8565b6001600160a01b031614610d635760405162461bcd60e51b8152600401610b54906137f4565b6001600160a01b03811660009081526005602052604090205460ff16610d9b5760405162461bcd60e51b8152600401610b5490613707565b60005b600954811015610ef557816001600160a01b031660098281548110610dd357634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610ee35760098054610dfe90600190613bc9565b81548110610e1c57634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600980546001600160a01b039092169183908110610e5657634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556009805480610ebc57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b0319169055019055610ef5565b80610eed81613bf7565b915050610d9e565b5050565b6000610b05610f06611d8a565b848460036000610f14611d8a565b6001600160a01b03908116825260208083019390935260409182016000908120918b1681529252902054610c1d9190613a5b565b6001600160a01b031660009081526007602052604090205460ff1690565b610f6e611d8a565b6001600160a01b0316610f7f6116c8565b6001600160a01b031614610fa55760405162461bcd60e51b8152600401610b54906137f4565b600c8054911515620100000262ff000019909216919091179055565b610fc9611d8a565b6001600160a01b0316610fda6116c8565b6001600160a01b0316146110005760405162461bcd60e51b8152600401610b54906137f4565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b61102c611d8a565b6001600160a01b031661103d6116c8565b6001600160a01b0316146110635760405162461bcd60e51b8152600401610b54906137f4565b804710156110835760405162461bcd60e51b8152600401610b54906137bd565b604051339082156108fc029083906000818181858888f19350505050158015610ef5573d6000803e3d6000fd5b6000600d548311156110d45760405162461bcd60e51b8152600401610b549061373e565b816110f05760006110e68460016120c7565b519150610b099050565b60006110fd8460016120c7565b602001519150610b099050565b600a5460ff1681565b61111b611d8a565b6001600160a01b031661112c6116c8565b6001600160a01b0316146111525760405162461bcd60e51b8152600401610b54906137f4565b6001600160a01b03811660009081526005602052604090205460ff161561118b5760405162461bcd60e51b8152600401610b54906136d0565b6001600160a01b038116600090815260016020526040902054156111e5576001600160a01b0381166000908152600160205260409020546111cb90610ccd565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6001600160a01b031660009081526004602052604090205460ff1690565b611271611d8a565b6001600160a01b03166112826116c8565b6001600160a01b0316146112a85760405162461bcd60e51b8152600401610b54906137f4565b6112b46009600a613ad9565b6112be9082613baa565b600f5550565b6112cc611d8a565b6001600160a01b03166112dd6116c8565b6001600160a01b0316146113035760405162461bcd60e51b8152600401610b54906137f4565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6001600160a01b031660009081526006602052604090205460ff1690565b61134a611d8a565b6001600160a01b031661135b6116c8565b6001600160a01b0316146113815760405162461bcd60e51b8152600401610b54906137f4565b60188590556019849055601a839055601b829055601c8190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a15050505050565b6022546023546024546001600160a01b039092169183565b600c5460ff1681565b6001600160a01b03811660009081526005602052604081205460ff161561142b57506001600160a01b038116600090815260026020526040902054610d0b565b6001600160a01b038216600090815260016020526040902054610b0990610ccd565b611455611d8a565b6001600160a01b03166114666116c8565b6001600160a01b03161461148c5760405162461bcd60e51b8152600401610b54906137f4565b6114966000612114565b565b6114a0611d8a565b6001600160a01b03166114b16116c8565b6001600160a01b0316146114d75760405162461bcd60e51b8152600401610b54906137f4565b611496612164565b601854601954601a54601b54601c5485565b600f5481565b6114ff611d8a565b6001600160a01b03166115106116c8565b6001600160a01b0316146115365760405162461bcd60e51b8152600401610b54906137f4565b6012546001600160a01b03828116911614156115645760405162461bcd60e51b8152600401610b54906138c2565b6012546040517ffd1d9a6fad94b5cdebe1316e0078f88f2ce6eb51916cc4e1ce8c5a092042c2fb916115a3916001600160a01b03909116908490613401565b60405180910390a1601280546001600160a01b0319166001600160a01b039283161790819055166000526006602052565b6115dc611d8a565b6001600160a01b03166115ed6116c8565b6001600160a01b0316146116135760405162461bcd60e51b8152600401610b54906137f4565b6064600d5460146116249190613baa565b61162e9190613a73565b81111561164d5760405162461bcd60e51b8152600401610b5490613829565b7f8b18943e2a7a341c517d9f9be1d38de6a216fa5ea142e41648895459c7eff2f860175482604051611680929190613a1c565b60405180910390a16116946009600a613ad9565b61169e9082613baa565b60175550565b6001600160a01b031660009081526005602052604090205460ff1690565b60175481565b6000546001600160a01b031690565b6116df611d8a565b6001600160a01b03166116f06116c8565b6001600160a01b0316146117165760405162461bcd60e51b8152600401610b54906137f4565b600c805460ff1916911515919091179055565b6040805180820190915260078152664b4f54444f474560c81b602082015290565b600c546301000000900460ff1681565b611762611d8a565b6001600160a01b03166117736116c8565b6001600160a01b0316146117995760405162461bcd60e51b8152600401610b54906137f4565b6001600160a01b0382166000908152600860205260409020805460ff191682158015919091179091556117ef5760006117d183611d00565b6001600160a01b038416600090815260086020526040902060010155505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b601d54601e54601f5460205460215485565b60155481565b6000610b05611850611d8a565b84610c1d85604051806060016040528060258152602001613c86602591396003600061187a611d8a565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190612078565b6000610b056118b8611d8a565b8484611e42565b6118c7611d8a565b6001600160a01b03166118d86116c8565b6001600160a01b0316146118fe5760405162461bcd60e51b8152600401610b54906137f4565b600c805491151563010000000263ff00000019909216919091179055565b6008602052600090815260409020805460019091015460ff9091169082565b6012546001600160a01b031681565b611952611d8a565b6001600160a01b03166119636116c8565b6001600160a01b0316146119895760405162461bcd60e51b8152600401610b54906137f4565b600c546001600160a01b038281166401000000009092041614156119bf5760405162461bcd60e51b8152600401610b5490613977565b7fd1122c000cb7ee1f98b2a8c3d20b186b29f5719b23d1d791f331795286b96761600c60049054906101000a90046001600160a01b031682604051611a05929190613401565b60405180910390a1600c80546001600160a01b0390921664010000000002640100000000600160c01b0319909216919091179055565b611a43611d8a565b6001600160a01b0316611a546116c8565b6001600160a01b031614611a7a5760405162461bcd60e51b8152600401610b54906137f4565b611a866009600a613ad9565b611a909082613baa565b60115550565b611a9e611d8a565b6001600160a01b0316611aaf6116c8565b6001600160a01b031614611ad55760405162461bcd60e51b8152600401610b54906137f4565b6114966121e7565b60105481565b611aeb611d8a565b6001600160a01b0316611afc6116c8565b6001600160a01b031614611b225760405162461bcd60e51b8152600401610b54906137f4565b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b611b79611d8a565b6001600160a01b0316611b8a6116c8565b6001600160a01b031614611bb05760405162461bcd60e51b8152600401610b54906137f4565b6001600160a01b03821660009081526007602052604090205460ff1615158115151415611bef5760405162461bcd60e51b8152600401610b549061353d565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b600c5462010000900460ff1681565b60115481565b611c37611d8a565b6001600160a01b0316611c486116c8565b6001600160a01b031614611c6e5760405162461bcd60e51b8152600401610b54906137f4565b6001600160a01b03166000908152600460205260409020805460ff19169055565b611c97611d8a565b6001600160a01b0316611ca86116c8565b6001600160a01b031614611cce5760405162461bcd60e51b8152600401610b54906137f4565b6001600160a01b038116611cf45760405162461bcd60e51b8152600401610b5490613603565b611cfd81612114565b50565b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3b57600080fd5b505afa158015611d4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b099190613379565b600c5464010000000090046001600160a01b031681565b3390565b6001600160a01b038316611db45760405162461bcd60e51b8152600401610b5490613933565b6001600160a01b038216611dda5760405162461bcd60e51b8152600401610b5490613649565b6001600160a01b0380841660008181526003602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611e359085906139a3565b60405180910390a3505050565b6001600160a01b038316611e685760405162461bcd60e51b8152600401610b54906138ee565b6001600160a01b038216611e8e5760405162461bcd60e51b8152600401610b54906134c3565b60008111611eae5760405162461bcd60e51b8152600401610b5490613879565b611eb7836113eb565b811115611ed65760405162461bcd60e51b8152600401610b5490613568565b6001600160a01b03831660009081526006602052604090205460ff16158015611f1857506001600160a01b03821660009081526006602052604090205460ff16155b15611fb557600a5460ff16611f3f5760405162461bcd60e51b8152600401610b5490613506565b600f54811115611f615760405162461bcd60e51b8152600401610b5490613775565b6001600160a01b03821660009081526008602052604090205460ff16611fb557601054611f9782611f91856113eb565b9061225b565b1115611fb55760405162461bcd60e51b8152600401610b549061368b565b6000611fc0306113eb565b601154600c5491925082101590610100900460ff16158015611fe45750600c5460ff165b8015611fed5750805b801561201257506001600160a01b03851660009081526008602052604090205460ff16155b1561202257612022601154612267565b6001600160a01b0385166000908152600460205260409020546120719086908690869060ff168061206b57506001600160a01b03881660009081526004602052604090205460ff165b15612434565b5050505050565b6000818484111561209c5760405162461bcd60e51b8152600401610b549190613470565b505050900390565b60008060006120b16129a5565b90925090506120c08183613a73565b9250505090565b6120cf613139565b6120d98383612b63565b90506120ee8184846120e96120a4565b612c73565b60c088015260a08701526080860152606085015260408401526020830152815292915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b601354602280546001600160a01b0319166001600160a01b0390921691909117905560006023554260245561219d60256039600a6131a1565b506013546040516001600160a01b03909116907fcb2c905a66a695cd7d34279033a7e3dae99796366e85a006aa4a2da4d167905c906121dd9042906139a3565b60405180910390a2565b6014546013546040517fbbd2df6049fa8b111b644f5bd6e7164f0d6da18ba7210f2fe3edc2012d954ac49261222a926001600160a01b0391821692911690613401565b60405180910390a1601354601480546001600160a01b0319166001600160a01b039092169190911790556000601555565b6000610c268284613a5b565b600c805461ff00191661010017905560408051600280825260608201835260009260208301908036833701905050905030816000815181106122b957634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050600c60049054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561232757600080fd5b505afa15801561233b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235f9190613254565b8160018151811061238057634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600c546123ae91309164010000000090041684611d8e565b600c5460125460405163791ac94760e01b81526001600160a01b0364010000000090930483169263791ac947926123f3928792600092889291169042906004016139ac565b600060405180830381600087803b15801561240d57600080fd5b505af1158015612421573d6000803e3d6000fd5b5050600c805461ff001916905550505050565b600061244083836120c7565b6001600160a01b03861660009081526008602052604090205490915060ff161561261f57600061246f86611d00565b6001600160a01b0387166000908152600860205260409020600101549091508110156124b8576001600160a01b0386166000908152600860205260409020600101819055612619565b600c5462010000900460ff161561258457601754841080156124e857506015546016546124e59190613a5b565b42115b156124fa576124f56121e7565b612584565b601754841015801561251a57506014546001600160a01b03868116911614155b15612584576014546040517f66fda27458be2ba843d1ed277bfab992a9d429675dacfaf8df93c09b1cab1b0c9161255c9188916001600160a01b031690613401565b60405180910390a1601480546001600160a01b0319166001600160a01b038716179055426015555b602354841080159061259f5750600c546301000000900460ff165b1561261957602280546001600160a01b0319166001600160a01b0387161790556023849055426024556125d28585612d49565b846001600160a01b03167fcb2c905a66a695cd7d34279033a7e3dae99796366e85a006aa4a2da4d167905c60226002015460405161261091906139a3565b60405180910390a25b5061263d565b6022546001600160a01b038681169116141561263d5761263d612164565b6001600160a01b03841660009081526008602052604090205460ff16156126b057600061266985611d00565b6001600160a01b0386166000908152600860205260409020600101549091508111156126ae576001600160a01b03851660009081526008602052604090206001018190555b505b604d546024546126c09190613a5b565b4211156126cf576126cf612164565b6001600160a01b03851660009081526005602052604090205460ff161561272e576001600160a01b038516600090815260026020526040902054612714908490613bc9565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b03841660009081526005602052604090205460ff16156127915760e08101516001600160a01b0385166000908152600260205260409020546127779190613a5b565b6001600160a01b0385166000908152600260205260409020555b80516001600160a01b0386166000908152600160205260409020546127b69190613bc9565b6001600160a01b03808716600090815260016020908152604080832094909455840151918716815291909120546127ed9190613a5b565b6001600160a01b03851660009081526001602052604090205581156129615761281f8160400151826101000151612ec9565b6128328160600151826101200151612efe565b6128458160800151826101400151612f95565b6128588160a0015182610160015161300b565b61286b8160c001518261018001516130a2565b6013546101208201516040516001600160a01b0392831692881691600080516020613c66833981519152916128a091906139a3565b60405180910390a3306001600160a01b0316856001600160a01b0316600080516020613c668339815191528361014001516040516128de91906139a3565b60405180910390a36014546101608201516040516001600160a01b0392831692881691600080516020613c668339815191529161291b91906139a3565b60405180910390a36022546101808201516040516001600160a01b0392831692881691600080516020613c668339815191529161295891906139a3565b60405180910390a35b836001600160a01b0316856001600160a01b0316600080516020613c668339815191528360e0015160405161299691906139a3565b60405180910390a35050505050565b600e54600d546000918291825b600954811015612b30578260016000600984815481106129e257634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612a5b5750816002600060098481548110612a3457634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15612a7257600e54600d5494509450505050612b5f565b6001600060098381548110612a9757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054612ac69084613bc9565b92506002600060098381548110612aed57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054612b1c9083613bc9565b915080612b2881613bf7565b9150506129b2565b50600d54600e54612b419190613a73565b821015612b5957600e54600d54935093505050612b5f565b90925090505b9091565b612b6b613139565b81612b7c5760e08101839052610b09565b601854606490612b8c9085613baa565b612b969190613a73565b610100820152601954606490612bac9085613baa565b612bb69190613a73565b610120820152601a54606490612bcc9085613baa565b612bd69190613a73565b610140820152601b54606490612bec9085613baa565b612bf69190613a73565b610160820152601c54606490612c0c9085613baa565b612c169190613a73565b6101808201819052610160820151610140830151610120840151610100850151612c409088613bc9565b612c4a9190613bc9565b612c549190613bc9565b612c5e9190613bc9565b612c689190613bc9565b60e082015292915050565b6000808080808080612c85888b613baa565b965088612ca357508594506000935083925082915081905080612d3b565b878b6101000151612cb49190613baa565b9450878b6101200151612cc79190613baa565b9350878b6101400151612cda9190613baa565b9250878b6101600151612ced9190613baa565b9150878b6101800151612d009190613baa565b905080828486612d10898c613bc9565b612d1a9190613bc9565b612d249190613bc9565b612d2e9190613bc9565b612d389190613bc9565b95505b949950949992975094509450565b600080612d586001600a613bc9565b90505b81811115612e52576025612d70600183613bc9565b600a8110612d8e57634e487b7160e01b600052603260045260246000fd5b6002020160010154602582600a8110612db757634e487b7160e01b600052603260045260246000fd5b60020201600101819055506025600182612dd19190613bc9565b600a8110612def57634e487b7160e01b600052603260045260246000fd5b60020201546001600160a01b0316602582600a8110612e1e57634e487b7160e01b600052603260045260246000fd5b6002020180546001600160a01b0319166001600160a01b039290921691909117905580612e4a81613be0565b915050612d5b565b5081602582600a8110612e7557634e487b7160e01b600052603260045260246000fd5b600202016001018190555082602582600a8110612ea257634e487b7160e01b600052603260045260246000fd5b6002020180546001600160a01b0319166001600160a01b0392909216919091179055505050565b81600e6000828254612edb9190613bc9565b9091555050601d8054829190600090612ef5908490613a5b565b90915550505050565b80601d6001016000828254612f139190613a5b565b90915550506013546001600160a01b031660009081526005602052604090205460ff1615612f6b576013546001600160a01b031660009081526002602052604081208054839290612f65908490613a5b565b90915550505b6013546001600160a01b031660009081526001602052604081208054849290612ef5908490613a5b565b80601d6002016000828254612faa9190613a5b565b90915550503060009081526005602052604090205460ff1615612fec573060009081526002602052604081208054839290612fe6908490613a5b565b90915550505b3060009081526001602052604081208054849290612ef5908490613a5b565b80601d60030160008282546130209190613a5b565b90915550506014546001600160a01b031660009081526005602052604090205460ff1615613078576014546001600160a01b031660009081526002602052604081208054839290613072908490613a5b565b90915550505b6014546001600160a01b031660009081526001602052604081208054849290612ef5908490613a5b565b80601d60040160008282546130b79190613a5b565b90915550506022546001600160a01b031660009081526005602052604090205460ff161561310f576022546001600160a01b031660009081526002602052604081208054839290613109908490613a5b565b90915550505b6022546001600160a01b031660009081526001602052604081208054849290612ef5908490613a5b565b604051806101a00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6014830191839082156131f2579160020282015b828111156131f257825482546001600160a01b0319166001600160a01b0390911617825560018084015490830155600292830192909101906131b5565b506131fe929150613202565b5090565b5b808211156131fe5780546001600160a01b031916815560006001820155600201613203565b80358015158114610d0b57600080fd5b600060208284031215613249578081fd5b8135610c2681613c28565b600060208284031215613265578081fd5b8151610c2681613c28565b60008060408385031215613282578081fd5b823561328d81613c28565b9150602083013561329d81613c28565b809150509250929050565b6000806000606084860312156132bc578081fd5b83356132c781613c28565b925060208401356132d781613c28565b929592945050506040919091013590565b600080604083850312156132fa578182fd5b823561330581613c28565b915061331360208401613228565b90509250929050565b6000806040838503121561332e578182fd5b823561333981613c28565b946020939093013593505050565b600060208284031215613358578081fd5b610c2682613228565b600060208284031215613372578081fd5b5035919050565b60006020828403121561338a578081fd5b5051919050565b600080604083850312156133a3578182fd5b8235915061331360208401613228565b600080600080600060a086880312156133ca578081fd5b505083359560208501359550604085013594606081013594506080013592509050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039390931683526020830191909152604082015260600190565b901515815260200190565b9115158252602082015260400190565b6000602080835283518082850152825b8181101561349c57858101830151858201604001528201613480565b818111156134ad5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252601a908201527f54726164696e67206973206e6f7420656e61626c656420796574000000000000604082015260600190565b60208082526011908201527015985b1d5948185b1c9958591e481cd95d607a1b604082015260600190565b60208082526031908201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206040820152707468616e20796f75722062616c616e636560781b606082015260800190565b6020808252602a908201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260408201526965666c656374696f6e7360b01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526025908201527f42616c616e636520697320657863656564696e67206d617857616c6c657442616040820152646c616e636560d81b606082015260800190565b6020808252601b908201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604082015260600190565b60208082526017908201527f4163636f756e74206973206e6f74206578636c75646564000000000000000000604082015260600190565b6020808252601f908201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604082015260600190565b60208082526028908201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546040820152673c20b6b7bab73a1760c11b606082015260800190565b60208082526018908201527f696e73756666696369656e7420424e422062616c616e63650000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526030908201527f4e657720746172676574206d757374206265206c657373207468656e2032302560408201526f206f6620746f74616c20737570706c7960801b606082015260800190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526012908201527115d85b1b195d08185b1c9958591e481cd95d60721b604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b602080825260129082015271149bdd5d195c88185b1c9958591e481cd95d60721b604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156139fb5784516001600160a01b0316835293830193918301916001016139d6565b50506001600160a01b03969096166060850152505050608001529392505050565b918252602082015260400190565b948552602085019390935260408401919091526060830152608082015260a00190565b60ff91909116815260200190565b60008219821115613a6e57613a6e613c12565b500190565b600082613a8e57634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611613aa55750613ad0565b818704821115613ab757613ab7613c12565b80861615613ac457918102915b9490941c938002613a96565b94509492505050565b6000610c2660001960ff851684600082613af557506001610c26565b81613b0257506000610c26565b8160018114613b185760028114613b2257613b4f565b6001915050610c26565b60ff841115613b3357613b33613c12565b6001841b915084821115613b4957613b49613c12565b50610c26565b5060208310610133831016604e8410600b8410161715613b82575081810a83811115613b7d57613b7d613c12565b610c26565b613b8f8484846001613a93565b808604821115613ba157613ba1613c12565b02949350505050565b6000816000190483118215151615613bc457613bc4613c12565b500290565b600082821015613bdb57613bdb613c12565b500390565b600081613bef57613bef613c12565b506000190190565b6000600019821415613c0b57613c0b613c12565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611cfd57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208237941f74fc694da99bc09e0924fa9222f70792d934f426a603633eeeea73ef64736f6c6343000800003300000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e

-----Decoded View---------------
Arg [0] : routerAddress (address): 0x10ed43c718714eb63d5aa57b78b54704e256024e

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e


Deployed ByteCode Sourcemap

9056:22573:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13724:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14655:161;;;;;;;;;;-1:-1:-1;14655:161:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;14020:95::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;30148:127::-;;;;;;;;;;-1:-1:-1;30148:127:0;;;;;:::i;:::-;;:::i;:::-;;11959:29;;;;;;;;;;-1:-1:-1;11959:29:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;14824:313::-;;;;;;;;;;-1:-1:-1;14824:313:0;;;;;:::i;:::-;;:::i;9896:38::-;;;;;;;;;;;;;:::i;16614:218::-;;;;;;;;;;;;;:::i;16842:248::-;;;;;;;;;;-1:-1:-1;16842:248:0;;;;;:::i;:::-;;:::i;10614:25::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13906:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;17505:475::-;;;;;;;;;;-1:-1:-1;17505:475:0;;;;;:::i;:::-;;:::i;15145:213::-;;;;;;;;;;-1:-1:-1;15145:213:0;;;;;:::i;:::-;;:::i;31210:98::-;;;;;;;;;;-1:-1:-1;31210:98:0;;;;;:::i;:::-;;:::i;30894:121::-;;;;;;;;;;-1:-1:-1;30894:121:0;;;;;:::i;:::-;;:::i;17990:111::-;;;;;;;;;;-1:-1:-1;17990:111:0;;;;;:::i;:::-;;:::i;31384:196::-;;;;;;;;;;-1:-1:-1;31384:196:0;;;;;:::i;:::-;;:::i;15771:456::-;;;;;;;;;;-1:-1:-1;15771:456:0;;;;;:::i;:::-;;:::i;9863:26::-;;;;;;;;;;;;;:::i;17164:333::-;;;;;;;;;;-1:-1:-1;17164:333:0;;;;;:::i;:::-;;:::i;18615:123::-;;;;;;;;;;-1:-1:-1;18615:123:0;;;;;:::i;:::-;;:::i;30019:117::-;;;;;;;;;;-1:-1:-1;30019:117:0;;;;;:::i;:::-;;:::i;18352:118::-;;;;;;;;;;-1:-1:-1;18352:118:0;;;;;:::i;:::-;;:::i;18478:129::-;;;;;;;;;;-1:-1:-1;18478:129:0;;;;;:::i;:::-;;:::i;18746:343::-;;;;;;;;;;-1:-1:-1;18746:343:0;;;;;:::i;:::-;;:::i;11840:24::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;9941:23::-;;;;;;;;;;;;;:::i;14123:198::-;;;;;;;;;;-1:-1:-1;14123:198:0;;;;;:::i;:::-;;:::i;8166:94::-;;;;;;;;;;;;;:::i;24679:74::-;;;;;;;;;;;;;:::i;11226:269::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;10331:41::-;;;;;;;;;;;;;:::i;29348:342::-;;;;;;;;;;-1:-1:-1;29348:342:0;;;;;:::i;:::-;;:::i;29702:305::-;;;;;;;;;;-1:-1:-1;29702:305:0;;;;;:::i;:::-;;:::i;15643:120::-;;;;;;;;;;-1:-1:-1;15643:120:0;;;;;:::i;:::-;;:::i;10732:59::-;;;;;;;;;;;;;:::i;7943:87::-;;;;;;;;;;;;;:::i;30664:101::-;;;;;;;;;;-1:-1:-1;30664:101:0;;;;;:::i;:::-;;:::i;13813:87::-;;;;;;;;;;;;;:::i;10046:32::-;;;;;;;;;;;;;:::i;16236:366::-;;;;;;;;;;-1:-1:-1;16236:366:0;;;;;:::i;:::-;;:::i;11672:36::-;;;;;;;;;;;;;:::i;10646:34::-;;;;;;;;;;;;;:::i;15366:269::-;;;;;;;;;;-1:-1:-1;15366:269:0;;;;;:::i;:::-;;:::i;14329:167::-;;;;;;;;;;-1:-1:-1;14329:167:0;;;;;:::i;:::-;;:::i;30777:105::-;;;;;;;;;;-1:-1:-1;30777:105:0;;;;;:::i;:::-;;:::i;9729:85::-;;;;;;;;;;-1:-1:-1;9729:85:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;10499:30::-;;;;;;;;;;;;;:::i;30287:223::-;;;;;;;;;;-1:-1:-1;30287:223:0;;;;;:::i;:::-;;:::i;30522:130::-;;;;;;;;;;-1:-1:-1;30522:130:0;;;;;:::i;:::-;;:::i;24577:90::-;;;;;;;;;;;;;:::i;10379:46::-;;;;;;;;;;;;;:::i;18227:117::-;;;;;;;;;;-1:-1:-1;18227:117:0;;;;;:::i;:::-;;:::i;14504:143::-;;;;;;;;;;-1:-1:-1;14504:143:0;;;;;:::i;:::-;;:::i;31027:171::-;;;;;;;;;;-1:-1:-1;31027:171:0;;;;;:::i;:::-;;:::i;9999:40::-;;;;;;;;;;;;;:::i;10432:58::-;;;;;;;;;;;;;:::i;18109:110::-;;;;;;;;;;-1:-1:-1;18109:110:0;;;;;:::i;:::-;;:::i;8268:192::-;;;;;;;;;;-1:-1:-1;8268:192:0;;;;;:::i;:::-;;:::i;25019:123::-;;;;;;;;;;-1:-1:-1;25019:123:0;;;;;:::i;:::-;;:::i;10091:21::-;;;;;;;;;;;;;:::i;13724:83::-;13794:5;;;;;;;;;;;;-1:-1:-1;;;13794:5:0;;;;13724:83;:::o;14655:161::-;14730:4;14747:39;14756:12;:10;:12::i;:::-;14770:7;14779:6;14747:8;:39::i;:::-;-1:-1:-1;14804:4:0;14655:161;;;;;:::o;14020:95::-;14100:7;;14020:95;:::o;30148:127::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;;;;;;;;;30254:13:::1;10156:1;30254:2;:13;:::i;:::-;30245:22;::::0;:6;:22:::1;:::i;:::-;30225:17;:42:::0;-1:-1:-1;30148:127:0:o;11959:29::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11959:29:0;;;;-1:-1:-1;11959:29:0;:::o;14824:313::-;14922:4;14939:36;14949:6;14957:9;14968:6;14939:9;:36::i;:::-;14986:121;14995:6;15003:12;:10;:12::i;:::-;15017:89;15055:6;15017:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15017:19:0;;;;;;:11;:19;;;;;;15037:12;:10;:12::i;:::-;-1:-1:-1;;;;;15017:33:0;;;;;;;;;;;;-1:-1:-1;15017:33:0;;;:89;:37;:89::i;:::-;14986:8;:121::i;:::-;-1:-1:-1;15125:4:0;14824:313;;;;;;:::o;9896:38::-;;;;:::o;16614:218::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;16667:14:::1;:21:::0;;16684:4:::1;-1:-1:-1::0;;16667:21:0;;::::1;::::0;::::1;::::0;;;16699:11:::1;:18:::0;;;;::::1;::::0;;::::1;::::0;;16754:15:::1;16728:23;:41:::0;;;16785:39:::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;16614:218::o:0;16842:248::-;16908:7;16947;;16936;:18;;16928:73;;;;-1:-1:-1;;;16928:73:0;;;;;;;:::i;:::-;17012:19;17035:10;:8;:10::i;:::-;17012:33;-1:-1:-1;17063:19:0;17012:33;17063:7;:19;:::i;:::-;17056:26;;;16842:248;;;;:::o;10614:25::-;;;-1:-1:-1;;;;;10614:25:0;;:::o;13906:83::-;10156:1;13906:83;:::o;17505:475::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17587:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;17579:56;;;;-1:-1:-1::0;;;17579:56:0::1;;;;;;;:::i;:::-;17651:9;17646:327;17670:9;:16:::0;17666:20;::::1;17646:327;;;17728:7;-1:-1:-1::0;;;;;17712:23:0::1;:9;17722:1;17712:12;;;;;;-1:-1:-1::0;;;17712:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;17712:12:0::1;:23;17708:254;;;17771:9;17781:16:::0;;:20:::1;::::0;17800:1:::1;::::0;17781:20:::1;:::i;:::-;17771:31;;;;;;-1:-1:-1::0;;;17771:31:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;17756:9:::1;:12:::0;;-1:-1:-1;;;;;17771:31:0;;::::1;::::0;17766:1;;17756:12;::::1;;;-1:-1:-1::0;;;17756:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;17756:46:0::1;-1:-1:-1::0;;;;;17756:46:0;;::::1;;::::0;;17821:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;17860:11:::1;:20:::0;;;;:28;;-1:-1:-1;;17860:28:0::1;::::0;;17907:9:::1;:15:::0;;;::::1;;-1:-1:-1::0;;;17907:15:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;17907:15:0;;;;;-1:-1:-1;;;;;;17907:15:0::1;::::0;;;;;17941:5:::1;;17708:254;17688:3:::0;::::1;::::0;::::1;:::i;:::-;;;;17646:327;;;;17505:475:::0;:::o;15145:213::-;15233:4;15250:78;15259:12;:10;:12::i;:::-;15273:7;15317:10;15282:11;:25;15294:12;:10;:12::i;:::-;-1:-1:-1;;;;;15282:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;15282:25:0;;;:34;;;;;;;;;;:45;;;;:::i;31210:98::-;-1:-1:-1;;;;;31285:15:0;31262:4;31285:15;;;:6;:15;;;;;;;;;31210:98::o;30894:121::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;30975:21:::1;:32:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;30975:32:0;;::::1;::::0;;;::::1;::::0;;30894:121::o;17990:111::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18059:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;18059:34:0::1;18089:4;18059:34;::::0;;17990:111::o;31384:196::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;31484:9:::1;31459:21;:34;;31451:71;;;;-1:-1:-1::0;;;31451:71:0::1;;;;;;;:::i;:::-;31533:39;::::0;31541:10:::1;::::0;31533:39;::::1;;;::::0;31562:9;;31533:39:::1;::::0;;;31562:9;31541:10;31533:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;15771:456:::0;15861:7;15900;;15889;:18;;15881:62;;;;-1:-1:-1;;;15881:62:0;;;;;;;:::i;:::-;15959:17;15954:266;;15993:28;16024:25;16035:7;16044:4;16024:10;:25::i;:::-;16071:9;;-1:-1:-1;16064:16:0;;-1:-1:-1;16064:16:0;15954:266;16113:28;16144:25;16155:7;16164:4;16144:10;:25::i;:::-;16191:17;;;;-1:-1:-1;16184:24:0;;-1:-1:-1;16184:24:0;9863:26;;;;;;:::o;17164:333::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17247:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;17246:21;17238:61;;;;-1:-1:-1::0;;;17238:61:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17313:16:0;::::1;17332:1;17313:16:::0;;;:7:::1;:16;::::0;;;;;:20;17310:108:::1;;-1:-1:-1::0;;;;;17389:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;17369:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;17350:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;17310:108:::1;-1:-1:-1::0;;;;;17428:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;17428:27:0::1;17451:4;17428:27:::0;;::::1;::::0;;;17466:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;17466:23:0::1;::::0;;::::1;::::0;;17164:333::o;18615:123::-;-1:-1:-1;;;;;18703:27:0;18679:4;18703:27;;;:18;:27;;;;;;;;;18615:123::o;30019:117::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;30115:13:::1;10156:1;30115:2;:13;:::i;:::-;30106:22;::::0;:6;:22:::1;:::i;:::-;30091:12;:37:::0;-1:-1:-1;30019:117:0:o;18352:118::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18425:29:0::1;18457:5;18425:29:::0;;;:20:::1;:29;::::0;;;;:37;;-1:-1:-1;;18425:37:0::1;::::0;;18352:118::o;18478:129::-;-1:-1:-1;;;;;18570:29:0;18546:4;18570:29;;;:20;:29;;;;;;;;;18478:129::o;18746:343::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;18883:8:::1;:19:::0;;;18911:13;:21;;;18941:17;:29;;;18979:23;:41;;;19029:15;:25;;;19068:13:::1;::::0;::::1;::::0;18883:12:::1;::::0;19068:13:::1;18746:343:::0;;;;;:::o;11840:24::-;;;;;;;-1:-1:-1;;;;;11840:24:0;;;;;:::o;9941:23::-;;;;;;:::o;14123:198::-;-1:-1:-1;;;;;14213:20:0;;14189:7;14213:20;;;:11;:20;;;;;;;;14209:49;;;-1:-1:-1;;;;;;14242:16:0;;;;;;:7;:16;;;;;;14235:23;;14209:49;-1:-1:-1;;;;;14296:16:0;;;;;;:7;:16;;;;;;14276:37;;:19;:37::i;8166:94::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;8231:21:::1;8249:1;8231:9;:21::i;:::-;8166:94::o:0;24679:74::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;24731:14:::1;:12;:14::i;11226:269::-:0;;;;;;;;;;;;:::o;10331:41::-;;;;:::o;29348:342::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;29434:15:::1;::::0;-1:-1:-1;;;;;29434:28:0;;::::1;:15:::0;::::1;:28;;29426:59;;;;-1:-1:-1::0;;;29426:59:0::1;;;;;;;:::i;:::-;29523:15;::::0;29501:49:::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;29523:15:0;;::::1;::::0;29540:9;;29501:49:::1;:::i;:::-;;;;;;;;29561:15;:27:::0;;-1:-1:-1;;;;;;29561:27:0::1;-1:-1:-1::0;;;;;29561:27:0;;::::1;;::::0;;;;29618:15:::1;-1:-1:-1::0;29599:35:0;29645:20:::1;29599:35;29645:37:::0;29348:342::o;29702:305::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;29819:3:::1;29804:7;;29814:2;29804:12;;;;:::i;:::-;:18;;;;:::i;:::-;29790:9;:33;;29782:94;;;;-1:-1:-1::0;;;29782:94:0::1;;;;;;;:::i;:::-;29892:52;29916:16;;29934:9;29892:52;;;;;;;:::i;:::-;;;;;;;;29986:13;10156:1;29986:2;:13;:::i;:::-;29974:25;::::0;:9;:25:::1;:::i;:::-;29955:16;:44:::0;-1:-1:-1;29702:305:0:o;15643:120::-;-1:-1:-1;;;;;15735:20:0;15711:4;15735:20;;;:11;:20;;;;;;;;;15643:120::o;10732:59::-;;;;:::o;7943:87::-;7989:7;8016:6;-1:-1:-1;;;;;8016:6:0;7943:87;:::o;30664:101::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;30735:11:::1;:22:::0;;-1:-1:-1;;30735:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;30664:101::o;13813:87::-;13885:7;;;;;;;;;;;;-1:-1:-1;;;13885:7:0;;;;13813:87;:::o;10046:32::-;;;;;;;;;:::o;16236:366::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16329:31:0;::::1;;::::0;;;:25:::1;:31;::::0;;;;:46;;-1:-1:-1;;16329:46:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;16386:153:::1;;16420:16;16439:24;16458:4;16439:18;:24::i;:::-;-1:-1:-1::0;;;;;16478:31:0;::::1;;::::0;;;:25:::1;:31;::::0;;;;:38:::1;;:49:::0;-1:-1:-1;16386:153:0::1;16554:40;::::0;;::::1;;::::0;-1:-1:-1;;;;;16554:40:0;::::1;::::0;::::1;::::0;;;::::1;16236:366:::0;;:::o;11672:36::-;;;;;;;;;;;;:::o;10646:34::-;;;;:::o;15366:269::-;15459:4;15476:129;15485:12;:10;:12::i;:::-;15499:7;15508:96;15547:15;15508:96;;;;;;;;;;;;;;;;;:11;:25;15520:12;:10;:12::i;:::-;-1:-1:-1;;;;;15508:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;15508:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;14329:167::-;14407:4;14424:42;14434:12;:10;:12::i;:::-;14448:9;14459:6;14424:9;:42::i;30777:105::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;30850:13:::1;:24:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;30850:24:0;;::::1;::::0;;;::::1;::::0;;30777:105::o;9729:85::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;10499:30::-;;;-1:-1:-1;;;;;10499:30:0;;:::o;30287:223::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;30365:6:::1;::::0;-1:-1:-1;;;;;30365:19:0;;::::1;:6:::0;;;::::1;;:19;;30357:50;;;;-1:-1:-1::0;;;30357:50:0::1;;;;;;;:::i;:::-;30423;30445:6;;;;;;;;;-1:-1:-1::0;;;;;30445:6:0::1;30462:9;30423:50;;;;;;;:::i;:::-;;;;;;;;30484:6;:18:::0;;-1:-1:-1;;;;;30484:18:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;30484:18:0;;::::1;::::0;;;::::1;::::0;;30287:223::o;30522:130::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;30631:13:::1;10156:1;30631:2;:13;:::i;:::-;30622:22;::::0;:6;:22:::1;:::i;:::-;30601:18;:43:::0;-1:-1:-1;30522:130:0:o;24577:90::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;24637:22:::1;:20;:22::i;10379:46::-:0;;;;:::o;18227:117::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18300:29:0::1;;::::0;;;:20:::1;:29;::::0;;;;:36;;-1:-1:-1;;18300:36:0::1;18332:4;18300:36;::::0;;18227:117::o;14504:143::-;-1:-1:-1;;;;;14612:18:0;;;14585:7;14612:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;14504:143::o;31027:171::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;31112:15:0;::::1;;::::0;;;:6:::1;:15;::::0;;;;;::::1;;:23;;::::0;::::1;;;;31104:53;;;;-1:-1:-1::0;;;31104:53:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;31168:15:0;;;::::1;;::::0;;;:6:::1;:15;::::0;;;;:22;;-1:-1:-1;;31168:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;31027:171::o;9999:40::-;;;;;;;;;:::o;10432:58::-;;;;:::o;18109:110::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18176:27:0::1;18206:5;18176:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;18176:35:0::1;::::0;;18109:110::o;8268:192::-;8089:12;:10;:12::i;:::-;-1:-1:-1;;;;;8078:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;8078:23:0;;8070:68;;;;-1:-1:-1;;;8070:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8357:22:0;::::1;8349:73;;;;-1:-1:-1::0;;;8349:73:0::1;;;;;;;:::i;:::-;8433:19;8443:8;8433:9;:19::i;:::-;8268:192:::0;:::o;25019:123::-;25081:7;25115:4;-1:-1:-1;;;;;25108:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10091:21::-;;;;;;-1:-1:-1;;;;;10091:21:0;;:::o;3810:98::-;3890:10;3810:98;:::o;22821:335::-;-1:-1:-1;;;;;22914:19:0;;22906:68;;;;-1:-1:-1;;;22906:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22993:21:0;;22985:68;;;;-1:-1:-1;;;22985:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23064:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;23116:32;;;;;23094:6;;23116:32;:::i;:::-;;;;;;;;22821:335;;;:::o;23164:1227::-;-1:-1:-1;;;;;23252:18:0;;23244:68;;;;-1:-1:-1;;;23244:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23331:16:0;;23323:64;;;;-1:-1:-1;;;23323:64:0;;;;;;;:::i;:::-;23415:1;23406:6;:10;23398:64;;;;-1:-1:-1;;;23398:64:0;;;;;;;:::i;:::-;23491:15;23501:4;23491:9;:15::i;:::-;23481:6;:25;;23473:86;;;;-1:-1:-1;;;23473:86:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23574:26:0;;;;;;:20;:26;;;;;;;;23573:27;:56;;;;-1:-1:-1;;;;;;23605:24:0;;;;;;:20;:24;;;;;;;;23604:25;23573:56;23570:417;;;23653:14;;;;23645:53;;;;-1:-1:-1;;;23645:53:0;;;;;;;:::i;:::-;23731:12;;23721:6;:22;;23713:75;;;;-1:-1:-1;;;23713:75:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23807:29:0;;;;;;:25;:29;;;;;:36;;;23803:173;;23901:17;;23872:25;23890:6;23872:13;23882:2;23872:9;:13::i;:::-;:17;;:25::i;:::-;:46;;23864:96;;;;-1:-1:-1;;;23864:96:0;;;;;;;:::i;:::-;23997:28;24028:24;24046:4;24028:9;:24::i;:::-;24102:18;;24135:8;;23997:55;;-1:-1:-1;24078:42:0;;;;24135:8;;;;;24134:9;:24;;;;-1:-1:-1;24147:11:0;;;;24134:24;:35;;;;;24162:7;24134:35;:78;;;;-1:-1:-1;;;;;;24174:31:0;;;;;;:25;:31;;;;;:38;;;24173:39;24134:78;24131:145;;;24228:36;24245:18;;24228:16;:36::i;:::-;-1:-1:-1;;;;;24331:24:0;;;;;;:18;:24;;;;;;24296:87;;24311:4;;24317:2;;24321:6;;24331:24;;;:50;;-1:-1:-1;;;;;;24359:22:0;;;;;;:18;:22;;;;;;;;24331:50;24329:53;24296:14;:87::i;:::-;23164:1227;;;;;:::o;3032:240::-;3152:7;3213:12;3205:6;;;;3197:29;;;;-1:-1:-1;;;3197:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;3248:5:0;;;3032:240::o;22105:158::-;22146:7;22167:15;22184;22203:19;:17;:19::i;:::-;22166:56;;-1:-1:-1;22166:56:0;-1:-1:-1;22240:15:0;22166:56;;22240:15;:::i;:::-;22233:22;;;;22105:158;:::o;20306:409::-;20379:36;;:::i;:::-;20440:29;20452:7;20461;20440:11;:29::i;:::-;20428:41;;20628:52;20640:9;20651:7;20660;20669:10;:8;:10::i;:::-;20628:11;:52::i;:::-;20607:17;;;20480:200;20580:25;;;20480:200;20559:19;;;20480:200;20542:15;;;20480:200;20527:14;;;20480:200;20500:25;;;20480:200;;;20306:409;;;;:::o;8468:173::-;8524:16;8543:6;;-1:-1:-1;;;;;8560:17:0;;;-1:-1:-1;;;;;;8560:17:0;;;;;;8593:40;;8543:6;;;;;;;8593:40;;8524:16;8593:40;8468:173;;:::o;24765:242::-;24828:8;;24808:6;:28;;-1:-1:-1;;;;;;24808:28:0;-1:-1:-1;;;;;24828:8:0;;;24808:28;;;;;;24828:8;24847:19;:23;24902:15;24881:18;:36;24928:22;:9;24940:10;24928:22;;:::i;:::-;-1:-1:-1;24973:8:0;;24966:33;;-1:-1:-1;;;;;24973:8:0;;;;24966:33;;;;24983:15;;24966:33;:::i;:::-;;;;;;;;24765:242::o;24403:162::-;24470:10;;24482:8;;24460:31;;;;;;-1:-1:-1;;;;;24470:10:0;;;;24482:8;;;24460:31;:::i;:::-;;;;;;;;24515:8;;24502:10;:21;;-1:-1:-1;;;;;;24502:21:0;-1:-1:-1;;;;;24515:8:0;;;24502:21;;;;;;24515:8;24534:19;:23;24403:162::o;2502:98::-;2560:7;2587:5;2591:1;2587;:5;:::i;28767:569::-;13041:8;:15;;-1:-1:-1;;13041:15:0;;;;;28923:16:::1;::::0;;28937:1:::1;28923:16:::0;;;;;::::1;::::0;;-1:-1:-1;;28923:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;28923:16:0::1;28899:40;;28968:4;28950;28955:1;28950:7;;;;;;-1:-1:-1::0;;;28950:7:0::1;;;;;;;;;;;;;;:23;-1:-1:-1::0;;;;;28950:23:0::1;;;-1:-1:-1::0;;;;;28950:23:0::1;;;::::0;::::1;28994:6;;;;;;;;;-1:-1:-1::0;;;;;28994:6:0::1;-1:-1:-1::0;;;;;28994:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28984:4;28989:1;28984:7;;;;;;-1:-1:-1::0;;;28984:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;28984:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;29060:6:::1;::::0;29028:48:::1;::::0;29045:4:::1;::::0;29060:6;;::::1;;29069::::0;29028:8:::1;:48::i;:::-;29116:6;::::0;29272:15:::1;::::0;29116:212:::1;::::0;-1:-1:-1;;;29116:212:0;;-1:-1:-1;;;;;29116:6:0;;;::::1;::::0;::::1;::::0;:57:::1;::::0;:212:::1;::::0;29188:6;;29209:1:::1;::::0;29253:4;;29272:15;::::1;::::0;29302::::1;::::0;29116:6:::1;:212;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13079:8:0;:16;;-1:-1:-1;;13079:16:0;;;-1:-1:-1;;;;28767:569:0:o;25601:3154::-;25712:28;25743;25754:7;25763;25743:10;:28::i;:::-;-1:-1:-1;;;;;25787:33:0;;;;;;:25;:33;;;;;:40;25712:59;;-1:-1:-1;25787:40:0;;25784:1479;;;25856:18;25877:26;25896:6;25877:18;:26::i;:::-;-1:-1:-1;;;;;25934:33:0;;;;;;:25;:33;;;;;:40;;;25856:47;;-1:-1:-1;25921:53:0;;25918:1171;;;-1:-1:-1;;;;;26023:33:0;;;;;;:25;:33;;;;;:40;;:53;;;25918:1171;;;26163:21;;;;;;;26160:535;;;26221:16;;26211:7;:26;:85;;;;;26276:19;;26260:13;;:35;;;;:::i;:::-;26241:15;:55;26211:85;26208:468;;;26324:22;:20;:22::i;:::-;26208:468;;;26409:16;;26400:7;:25;;:52;;;;-1:-1:-1;26442:10:0;;-1:-1:-1;;;;;26429:23:0;;;26442:10;;26429:23;;26400:52;26397:279;;;26528:10;;26507:32;;;;;;26518:9;;-1:-1:-1;;;;;26528:10:0;;26507:32;:::i;:::-;;;;;;;;26566:10;:22;;-1:-1:-1;;;;;;26566:22:0;-1:-1:-1;;;;;26566:22:0;;;;;26637:15;26615:19;:37;26397:279;26733:19;;26722:30;;;;;:47;;-1:-1:-1;26756:13:0;;;;;;;26722:47;26719:355;;;26794:6;:29;;-1:-1:-1;;;;;;26794:29:0;-1:-1:-1;;;;;26794:29:0;;;;;26846:19;:29;;;26919:15;26898:18;:36;26957:32;26794:29;26846;26957:12;:32::i;:::-;27024:9;-1:-1:-1;;;;;27017:37:0;;27035:6;:18;;;27017:37;;;;;;:::i;:::-;;;;;;;;26719:355;25784:1479;;;;27203:6;:17;-1:-1:-1;;;;;27193:27:0;;;27203:17;;27193:27;27190:73;;;27237:14;:12;:14::i;:::-;-1:-1:-1;;;;;27286:36:0;;;;;;:25;:36;;;;;:43;;;27283:324;;;27353:18;27374:29;27393:9;27374:18;:29::i;:::-;-1:-1:-1;;;;;27434:36:0;;;;;;:25;:36;;;;;:43;;;27353:50;;-1:-1:-1;27421:56:0;;27418:178;;;-1:-1:-1;;;;;27524:36:0;;;;;;:25;:36;;;;;:43;;:56;;;27418:178;27283:324;;27719:18;;27698;;:39;;27719:18;27698:39;:::i;:::-;27680:15;:57;27677:103;;;27754:14;:12;:14::i;:::-;-1:-1:-1;;;;;27796:19:0;;;;;;:11;:19;;;;;;;;27792:115;;;-1:-1:-1;;;;;27872:15:0;;;;;;:7;:15;;;;;;:23;;27888:7;;27872:23;:::i;:::-;-1:-1:-1;;;;;27854:15:0;;;;;;:7;:15;;;;;:41;27792:115;-1:-1:-1;;;;;27921:22:0;;;;;;:11;:22;;;;;;;;27917:130;;;28018:17;;;;-1:-1:-1;;;;;27999:18:0;;;;;;:7;:18;;;;;;:36;;28018:17;27999:36;:::i;:::-;-1:-1:-1;;;;;27978:18:0;;;;;;:7;:18;;;;;:57;27917:130;28093:9;;-1:-1:-1;;;;;28077:15:0;;28093:9;28077:15;;;:7;:15;;;;;;:25;;28093:9;28077:25;:::i;:::-;-1:-1:-1;;;;;28059:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;28153:17;;;28134:18;;;;;;;;;;:36;;28153:17;28134:36;:::i;:::-;-1:-1:-1;;;;;28113:18:0;;;;;;:7;:18;;;;;:57;28181:505;;;;28213:27;28225:1;:6;;;28233:1;:6;;;28213:11;:27::i;:::-;28251:26;28261:1;:7;;;28269:1;:7;;;28251:9;:26::i;:::-;28288:38;28302:1;:11;;;28314:1;:11;;;28288:13;:38::i;:::-;28337:57;28357:1;:17;;;28376:1;:17;;;28337:19;:57::i;:::-;28405:33;28417:1;:9;;;28428:1;:9;;;28405:11;:33::i;:::-;28471:8;;28481:7;;;;28454:35;;-1:-1:-1;;;;;28471:8:0;;;;28454:35;;;-1:-1:-1;;;;;;;;;;;28454:35:0;;;28481:7;28454:35;:::i;:::-;;;;;;;;28530:4;-1:-1:-1;;;;;28505:44:0;28514:6;-1:-1:-1;;;;;28505:44:0;-1:-1:-1;;;;;;;;;;;28537:1:0;:11;;;28505:44;;;;;;:::i;:::-;;;;;;;;28582:10;;28594:17;;;;28565:47;;-1:-1:-1;;;;;28582:10:0;;;;28565:47;;;-1:-1:-1;;;;;;;;;;;28565:47:0;;;28594:17;28565:47;:::i;:::-;;;;;;;;28645:6;:17;28664:9;;;;28628:46;;-1:-1:-1;;;;;28645:17:0;;;;28628:46;;;-1:-1:-1;;;;;;;;;;;28628:46:0;;;28664:9;28628:46;:::i;:::-;;;;;;;;28181:505;28718:9;-1:-1:-1;;;;;28701:46:0;28710:6;-1:-1:-1;;;;;28701:46:0;-1:-1:-1;;;;;;;;;;;28729:1:0;:17;;;28701:46;;;;;;:::i;:::-;;;;;;;;25601:3154;;;;;:::o;22271:540::-;22368:7;;22404;;22321;;;;;22422:279;22446:9;:16;22442:20;;22422:279;;;22512:7;22488;:21;22496:9;22506:1;22496:12;;;;;;-1:-1:-1;;;22496:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22496:12:0;22488:21;;;;;;;;;;;;;:31;;:66;;;22547:7;22523;:21;22531:9;22541:1;22531:12;;;;;;-1:-1:-1;;;22531:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22531:12:0;22523:21;;;;;;;;;;;;;:31;22488:66;22484:97;;;22564:7;;22573;;22556:25;;;;;;;;;22484:97;22614:7;:21;22622:9;22632:1;22622:12;;;;;;-1:-1:-1;;;22622:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22622:12:0;22614:21;;;;;;;;;;;;;22606:29;;:7;:29;:::i;:::-;22596:39;;22668:7;:21;22676:9;22686:1;22676:12;;;;;;-1:-1:-1;;;22676:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22676:12:0;22668:21;;;;;;;;;;;;;22660:29;;:7;:29;:::i;:::-;22650:39;-1:-1:-1;22464:3:0;;;;:::i;:::-;;;;22422:279;;;;22733:7;;22725;;:15;;;;:::i;:::-;22715:7;:25;22711:56;;;22750:7;;22759;;22742:25;;;;;;;;22711:56;22786:7;;-1:-1:-1;22795:7:0;-1:-1:-1;22271:540:0;;;:::o;20723:582::-;20797:28;;:::i;:::-;20844:7;20840:86;;20866:17;;;:27;;;20906:8;;20840:86;20953:8;:12;20966:3;;20945:20;;:7;:20;:::i;:::-;:24;;;;:::i;:::-;20936:6;;;:33;20998:13;;21012:3;;20990:21;;:7;:21;:::i;:::-;:25;;;;:::i;:::-;20980:7;;;:35;21048:17;;21066:3;;21040:25;;:7;:25;:::i;:::-;:29;;;;:::i;:::-;21026:11;;;:43;21108:23;;21132:3;;21100:31;;:7;:31;:::i;:::-;:35;;;;:::i;:::-;21080:17;;;:55;21166:15;;21182:3;;21158:23;;:7;:23;:::i;:::-;:27;;;;:::i;:::-;21146:9;;;:39;;;21251:17;;;;21239:11;;;;21231:7;;;;21224:6;;;;21216:14;;:7;:14;:::i;:::-;:22;;;;:::i;:::-;:34;;;;:::i;:::-;:52;;;;:::i;:::-;:62;;;;:::i;:::-;21196:17;;;:82;20723:582;;;;:::o;21313:784::-;21438:15;;;;;;;21590:19;21598:11;21590:7;:19;:::i;:::-;21580:29;;21626:7;21622:73;;-1:-1:-1;21655:7:0;;-1:-1:-1;21673:1:0;;-1:-1:-1;21673:1:0;;-1:-1:-1;21673:1:0;;-1:-1:-1;21673:1:0;;-1:-1:-1;21673:1:0;21648:35;;21622:73;21721:11;21714:1;:6;;;:18;;;;:::i;:::-;21707:25;;21759:11;21751:1;:7;;;:19;;;;:::i;:::-;21743:27;;21805:11;21793:1;:11;;;:23;;;;:::i;:::-;21781:35;;21863:11;21845:1;:17;;;:29;;;;:::i;:::-;21827:47;;21905:11;21895:1;:9;;;:21;;;;:::i;:::-;21885:31;-1:-1:-1;21885:31:0;21975:15;21965:9;21959:5;21946:12;21954:4;21946:7;:12;:::i;:::-;:18;;;;:::i;:::-;:28;;;;:::i;:::-;:44;;;;:::i;:::-;:52;;;;:::i;:::-;21927:71;;21313:784;;;;;;;;;;;;;:::o;25154:360::-;25228:6;;25262:20;25281:1;25262:16;:20;:::i;:::-;25253:29;;25249:177;25288:1;25284;:5;25249:177;;;25334:9;25344:5;25348:1;25344;:5;:::i;:::-;25334:16;;;;;-1:-1:-1;;;25334:16:0;;;;;;;;;;;;:24;;;25311:9;25321:1;25311:12;;;;;-1:-1:-1;;;25311:12:0;;;;;;;;;;;;:20;;:47;;;;25393:9;25407:1;25403;:5;;;;:::i;:::-;25393:16;;;;;-1:-1:-1;;;25393:16:0;;;;;;;;;;;;:21;-1:-1:-1;;;;;25393:21:0;25373:9;25383:1;25373:12;;;;;-1:-1:-1;;;25373:12:0;;;;;;;;;;;;:41;;-1:-1:-1;;;;;;25373:41:0;-1:-1:-1;;;;;25373:41:0;;;;;;;;;;25291:3;;;;:::i;:::-;;;;25249:177;;;;25459:12;25436:9;25446:1;25436:12;;;;;-1:-1:-1;;;25436:12:0;;;;;;;;;;;;:20;;:35;;;;25502:4;25482:9;25492:1;25482:12;;;;;-1:-1:-1;;;25482:12:0;;;;;;;;;;;;:24;;-1:-1:-1;;;;;;25482:24:0;-1:-1:-1;;;;;25482:24:0;;;;;;;;;;-1:-1:-1;;;25154:360:0:o;19097:123::-;19175:4;19165:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;19190:11:0;:22;;19208:4;;19190:11;:15;;:22;;19208:4;;19190:22;:::i;:::-;;;;-1:-1:-1;;;;19097:123:0:o;19228:234::-;19315:5;19296:11;:16;;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;19346:8:0;;-1:-1:-1;;;;;19346:8:0;19334:21;;;;:11;:21;;;;;;;;19331:77;;;19380:8;;-1:-1:-1;;;;;19380:8:0;19372:17;;;;:7;:17;;;;;:24;;19391:5;;19372:17;:24;;19391:5;;19372:24;:::i;:::-;;;;-1:-1:-1;;19331:77:0;19426:8;;-1:-1:-1;;;;;19426:8:0;19418:17;;;;:7;:17;;;;;:25;;19438:5;;19418:17;:25;;19438:5;;19418:25;:::i;19470:277::-;19573:9;19550:11;:20;;;:32;;;;;;;:::i;:::-;;;;-1:-1:-1;;19618:4:0;19598:26;;;;:11;:26;;;;;;;;19595:100;;;19666:4;19650:22;;;;:7;:22;;;;;:33;;19674:9;;19650:22;:33;;19674:9;;19650:33;:::i;:::-;;;;-1:-1:-1;;19595:100:0;19721:4;19705:22;;;;:7;:22;;;;;:34;;19730:9;;19705:22;:34;;19730:9;;19705:34;:::i;19755:260::-;19862:5;19833:11;:26;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;19895:10:0;;-1:-1:-1;;;;;19895:10:0;19883:23;;;;:11;:23;;;;;;;;19880:90;;;19940:10;;-1:-1:-1;;;;;19940:10:0;19932:19;;;;:7;:19;;;;;:26;;19953:5;;19932:19;:26;;19953:5;;19932:26;:::i;:::-;;;;-1:-1:-1;;19880:90:0;19988:10;;-1:-1:-1;;;;;19988:10:0;19980:19;;;;:7;:19;;;;;:27;;20002:5;;19980:19;:27;;20002:5;;19980:27;:::i;20023:275::-;20118:7;20097:11;:18;;;:28;;;;;;;:::i;:::-;;;;-1:-1:-1;;20153:6:0;:17;-1:-1:-1;;;;;20153:17:0;20141:30;;;;:11;:30;;;;;;;;20138:106;;;20205:6;:17;-1:-1:-1;;;;;20205:17:0;20197:26;;;;:7;:26;;;;;:35;;20225:7;;20197:26;:35;;20225:7;;20197:35;:::i;:::-;;;;-1:-1:-1;;20138:106:0;20262:6;:17;-1:-1:-1;;;;;20262:17:0;20254:26;;;;:7;:26;;;;;:36;;20283:7;;20254:26;:36;;20283:7;;20254:36;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:162:1;81:20;;137:13;;130:21;120:32;;110:2;;166:1;163;156:12;181:259;;293:2;281:9;272:7;268:23;264:32;261:2;;;314:6;306;299:22;261:2;358:9;345:23;377:33;404:5;377:33;:::i;445:263::-;;568:2;556:9;547:7;543:23;539:32;536:2;;;589:6;581;574:22;536:2;626:9;620:16;645:33;672:5;645:33;:::i;713:402::-;;;842:2;830:9;821:7;817:23;813:32;810:2;;;863:6;855;848:22;810:2;907:9;894:23;926:33;953:5;926:33;:::i;:::-;978:5;-1:-1:-1;1035:2:1;1020:18;;1007:32;1048:35;1007:32;1048:35;:::i;:::-;1102:7;1092:17;;;800:315;;;;;:::o;1120:470::-;;;;1266:2;1254:9;1245:7;1241:23;1237:32;1234:2;;;1287:6;1279;1272:22;1234:2;1331:9;1318:23;1350:33;1377:5;1350:33;:::i;:::-;1402:5;-1:-1:-1;1459:2:1;1444:18;;1431:32;1472:35;1431:32;1472:35;:::i;:::-;1224:366;;1526:7;;-1:-1:-1;;;1580:2:1;1565:18;;;;1552:32;;1224:366::o;1595:329::-;;;1721:2;1709:9;1700:7;1696:23;1692:32;1689:2;;;1742:6;1734;1727:22;1689:2;1786:9;1773:23;1805:33;1832:5;1805:33;:::i;:::-;1857:5;-1:-1:-1;1881:37:1;1914:2;1899:18;;1881:37;:::i;:::-;1871:47;;1679:245;;;;;:::o;1929:327::-;;;2058:2;2046:9;2037:7;2033:23;2029:32;2026:2;;;2079:6;2071;2064:22;2026:2;2123:9;2110:23;2142:33;2169:5;2142:33;:::i;:::-;2194:5;2246:2;2231:18;;;;2218:32;;-1:-1:-1;;;2016:240:1:o;2261:192::-;;2370:2;2358:9;2349:7;2345:23;2341:32;2338:2;;;2391:6;2383;2376:22;2338:2;2419:28;2437:9;2419:28;:::i;2737:190::-;;2849:2;2837:9;2828:7;2824:23;2820:32;2817:2;;;2870:6;2862;2855:22;2817:2;-1:-1:-1;2898:23:1;;2807:120;-1:-1:-1;2807:120:1:o;2932:194::-;;3055:2;3043:9;3034:7;3030:23;3026:32;3023:2;;;3076:6;3068;3061:22;3023:2;-1:-1:-1;3104:16:1;;3013:113;-1:-1:-1;3013:113:1:o;3131:260::-;;;3257:2;3245:9;3236:7;3232:23;3228:32;3225:2;;;3278:6;3270;3263:22;3225:2;3319:9;3306:23;3296:33;;3348:37;3381:2;3370:9;3366:18;3348:37;:::i;3396:464::-;;;;;;3576:3;3564:9;3555:7;3551:23;3547:33;3544:2;;;3598:6;3590;3583:22;3544:2;-1:-1:-1;;3626:23:1;;;3696:2;3681:18;;3668:32;;-1:-1:-1;3747:2:1;3732:18;;3719:32;;3798:2;3783:18;;3770:32;;-1:-1:-1;3849:3:1;3834:19;3821:33;;-1:-1:-1;3534:326:1;-1:-1:-1;3534:326:1:o;3865:203::-;-1:-1:-1;;;;;4029:32:1;;;;4011:51;;3999:2;3984:18;;3966:102::o;4073:304::-;-1:-1:-1;;;;;4303:15:1;;;4285:34;;4355:15;;4350:2;4335:18;;4328:43;4235:2;4220:18;;4202:175::o;4382:274::-;-1:-1:-1;;;;;4574:32:1;;;;4556:51;;4638:2;4623:18;;4616:34;4544:2;4529:18;;4511:145::o;4661:345::-;-1:-1:-1;;;;;4881:32:1;;;;4863:51;;4945:2;4930:18;;4923:34;;;;4988:2;4973:18;;4966:34;4851:2;4836:18;;4818:188::o;5011:187::-;5176:14;;5169:22;5151:41;;5139:2;5124:18;;5106:92::o;5203:258::-;5396:14;;5389:22;5371:41;;5443:2;5428:18;;5421:34;5359:2;5344:18;;5326:135::o;5689:603::-;;5830:2;5859;5848:9;5841:21;5891:6;5885:13;5934:6;5929:2;5918:9;5914:18;5907:34;5959:4;5972:140;5986:6;5983:1;5980:13;5972:140;;;6081:14;;;6077:23;;6071:30;6047:17;;;6066:2;6043:26;6036:66;6001:10;;5972:140;;;6130:6;6127:1;6124:13;6121:2;;;6200:4;6195:2;6186:6;6175:9;6171:22;6167:31;6160:45;6121:2;-1:-1:-1;6276:2:1;6255:15;-1:-1:-1;;6251:29:1;6236:45;;;;6283:2;6232:54;;5810:482;-1:-1:-1;;;5810:482:1:o;6297:399::-;6499:2;6481:21;;;6538:2;6518:18;;;6511:30;6577:34;6572:2;6557:18;;6550:62;-1:-1:-1;;;6643:2:1;6628:18;;6621:33;6686:3;6671:19;;6471:225::o;6701:350::-;6903:2;6885:21;;;6942:2;6922:18;;;6915:30;6981:28;6976:2;6961:18;;6954:56;7042:2;7027:18;;6875:176::o;7056:341::-;7258:2;7240:21;;;7297:2;7277:18;;;7270:30;-1:-1:-1;;;7331:2:1;7316:18;;7309:47;7388:2;7373:18;;7230:167::o;7402:413::-;7604:2;7586:21;;;7643:2;7623:18;;;7616:30;7682:34;7677:2;7662:18;;7655:62;-1:-1:-1;;;7748:2:1;7733:18;;7726:47;7805:3;7790:19;;7576:239::o;7820:406::-;8022:2;8004:21;;;8061:2;8041:18;;;8034:30;8100:34;8095:2;8080:18;;8073:62;-1:-1:-1;;;8166:2:1;8151:18;;8144:40;8216:3;8201:19;;7994:232::o;8231:402::-;8433:2;8415:21;;;8472:2;8452:18;;;8445:30;8511:34;8506:2;8491:18;;8484:62;-1:-1:-1;;;8577:2:1;8562:18;;8555:36;8623:3;8608:19;;8405:228::o;8638:398::-;8840:2;8822:21;;;8879:2;8859:18;;;8852:30;8918:34;8913:2;8898:18;;8891:62;-1:-1:-1;;;8984:2:1;8969:18;;8962:32;9026:3;9011:19;;8812:224::o;9041:401::-;9243:2;9225:21;;;9282:2;9262:18;;;9255:30;9321:34;9316:2;9301:18;;9294:62;-1:-1:-1;;;9387:2:1;9372:18;;9365:35;9432:3;9417:19;;9215:227::o;9447:351::-;9649:2;9631:21;;;9688:2;9668:18;;;9661:30;9727:29;9722:2;9707:18;;9700:57;9789:2;9774:18;;9621:177::o;9803:347::-;10005:2;9987:21;;;10044:2;10024:18;;;10017:30;10083:25;10078:2;10063:18;;10056:53;10141:2;10126:18;;9977:173::o;10155:355::-;10357:2;10339:21;;;10396:2;10376:18;;;10369:30;10435:33;10430:2;10415:18;;10408:61;10501:2;10486:18;;10329:181::o;10515:404::-;10717:2;10699:21;;;10756:2;10736:18;;;10729:30;10795:34;10790:2;10775:18;;10768:62;-1:-1:-1;;;10861:2:1;10846:18;;10839:38;10909:3;10894:19;;10689:230::o;10924:348::-;11126:2;11108:21;;;11165:2;11145:18;;;11138:30;11204:26;11199:2;11184:18;;11177:54;11263:2;11248:18;;11098:174::o;11277:356::-;11479:2;11461:21;;;11498:18;;;11491:30;11557:34;11552:2;11537:18;;11530:62;11624:2;11609:18;;11451:182::o;11638:412::-;11840:2;11822:21;;;11879:2;11859:18;;;11852:30;11918:34;11913:2;11898:18;;11891:62;-1:-1:-1;;;11984:2:1;11969:18;;11962:46;12040:3;12025:19;;11812:238::o;12055:405::-;12257:2;12239:21;;;12296:2;12276:18;;;12269:30;12335:34;12330:2;12315:18;;12308:62;-1:-1:-1;;;12401:2:1;12386:18;;12379:39;12450:3;12435:19;;12229:231::o;12465:342::-;12667:2;12649:21;;;12706:2;12686:18;;;12679:30;-1:-1:-1;;;12740:2:1;12725:18;;12718:48;12798:2;12783:18;;12639:168::o;12812:401::-;13014:2;12996:21;;;13053:2;13033:18;;;13026:30;13092:34;13087:2;13072:18;;13065:62;-1:-1:-1;;;13158:2:1;13143:18;;13136:35;13203:3;13188:19;;12986:227::o;13218:400::-;13420:2;13402:21;;;13459:2;13439:18;;;13432:30;13498:34;13493:2;13478:18;;13471:62;-1:-1:-1;;;13564:2:1;13549:18;;13542:34;13608:3;13593:19;;13392:226::o;13623:342::-;13825:2;13807:21;;;13864:2;13844:18;;;13837:30;-1:-1:-1;;;13898:2:1;13883:18;;13876:48;13956:2;13941:18;;13797:168::o;13970:177::-;14116:25;;;14104:2;14089:18;;14071:76::o;14152:983::-;;14462:3;14451:9;14447:19;14493:6;14482:9;14475:25;14519:2;14557:6;14552:2;14541:9;14537:18;14530:34;14600:3;14595:2;14584:9;14580:18;14573:31;14624:6;14659;14653:13;14690:6;14682;14675:22;14728:3;14717:9;14713:19;14706:26;;14767:2;14759:6;14755:15;14741:29;;14788:4;14801:195;14815:6;14812:1;14809:13;14801:195;;;14880:13;;-1:-1:-1;;;;;14876:39:1;14864:52;;14971:15;;;;14936:12;;;;14912:1;14830:9;14801:195;;;-1:-1:-1;;;;;;;15052:32:1;;;;15047:2;15032:18;;15025:60;-1:-1:-1;;;15116:3:1;15101:19;15094:35;15013:3;14423:712;-1:-1:-1;;;14423:712:1:o;15140:248::-;15314:25;;;15370:2;15355:18;;15348:34;15302:2;15287:18;;15269:119::o;15393:463::-;15652:25;;;15708:2;15693:18;;15686:34;;;;15751:2;15736:18;;15729:34;;;;15794:2;15779:18;;15772:34;15837:3;15822:19;;15815:35;15639:3;15624:19;;15606:250::o;15861:184::-;16033:4;16021:17;;;;16003:36;;15991:2;15976:18;;15958:87::o;16050:128::-;;16121:1;16117:6;16114:1;16111:13;16108:2;;;16127:18;;:::i;:::-;-1:-1:-1;16163:9:1;;16098:80::o;16183:217::-;;16249:1;16239:2;;-1:-1:-1;;;16274:31:1;;16328:4;16325:1;16318:15;16356:4;16281:1;16346:15;16239:2;-1:-1:-1;16385:9:1;;16229:171::o;16405:453::-;16501:6;16524:5;16538:314;16587:1;16624:2;16614:8;16611:16;16601:2;;16631:5;;;16601:2;16672:4;16667:3;16663:14;16657:4;16654:24;16651:2;;;16681:18;;:::i;:::-;16731:2;16721:8;16717:17;16714:2;;;16746:16;;;;16714:2;16825:17;;;;;16785:15;;16538:314;;;16482:376;;;;;;;:::o;16863:148::-;;16950:55;-1:-1:-1;;16991:4:1;16977:19;;16971:4;17016:922;17100:8;17090:2;;-1:-1:-1;17141:1:1;17155:5;;17090:2;17189:4;17179:2;;-1:-1:-1;17226:1:1;17240:5;;17179:2;17271:4;17289:1;17284:59;;;;17357:1;17352:183;;;;17264:271;;17284:59;17314:1;17305:10;;17328:5;;;17352:183;17389:3;17379:8;17376:17;17373:2;;;17396:18;;:::i;:::-;17452:1;17442:8;17438:16;17429:25;;17480:3;17473:5;17470:14;17467:2;;;17487:18;;:::i;:::-;17520:5;;;17264:271;;17619:2;17609:8;17606:16;17600:3;17594:4;17591:13;17587:36;17581:2;17571:8;17568:16;17563:2;17557:4;17554:12;17550:35;17547:77;17544:2;;;-1:-1:-1;17656:19:1;;;17691:14;;;17688:2;;;17708:18;;:::i;:::-;17741:5;;17544:2;17788:42;17826:3;17816:8;17810:4;17807:1;17788:42;:::i;:::-;17863:6;17858:3;17854:16;17845:7;17842:29;17839:2;;;17874:18;;:::i;:::-;17912:20;;17080:858;-1:-1:-1;;;;17080:858:1:o;17943:168::-;;18049:1;18045;18041:6;18037:14;18034:1;18031:21;18026:1;18019:9;18012:17;18008:45;18005:2;;;18056:18;;:::i;:::-;-1:-1:-1;18096:9:1;;17995:116::o;18116:125::-;;18184:1;18181;18178:8;18175:2;;;18189:18;;:::i;:::-;-1:-1:-1;18226:9:1;;18165:76::o;18246:136::-;;18313:5;18303:2;;18322:18;;:::i;:::-;-1:-1:-1;;;18358:18:1;;18293:89::o;18387:135::-;;-1:-1:-1;;18447:17:1;;18444:2;;;18467:18;;:::i;:::-;-1:-1:-1;18514:1:1;18503:13;;18434:88::o;18527:127::-;18588:10;18583:3;18579:20;18576:1;18569:31;18619:4;18616:1;18609:15;18643:4;18640:1;18633:15;18659:133;-1:-1:-1;;;;;18736:31:1;;18726:42;;18716:2;;18782:1;18779;18772:12

Swarm Source

ipfs://8237941f74fc694da99bc09e0924fa9222f70792d934f426a603633eeeea73ef
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.