Contract 0x176586dec2b70df5b72a6efe158a87f210551798

 
 
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0x1a0f787f0663b2c506801e196a080ab8bacc146dbd99bc460124e61f50f83e44Withdraw Dai383678702023-01-21 23:53:3768 days 20 hrs ago retireearly.bitcoin  IN  Gains Network: GFarm Vault V50 MATIC0.001630842827 55.734350409
0x92d0f11efa575c2815588ce118124f18193b3e39310cad8a4fb62935264d638dRefill227623902021-12-20 20:30:38465 days 23 hrs ago0x4180651da199717983664e0223febc3650235a42 IN  Gains Network: GFarm Vault V50 MATIC0.01157905175
0xa9c754a9fa74412bbb7d1d90514753dceaadc3ee7693d5d85e3f7c44eaa367daRefill227606312021-12-20 19:27:59466 days 42 mins ago0x1982c37b698ff8070fae3664022c3303392132fa IN  Gains Network: GFarm Vault V50 MATIC0.00337446651
0x13cdcb762f688c90b6e210822063804d6910c688c1430126f86e94ec8631ae83Refill227579522021-12-20 17:55:54466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.00549177883
0x70052817621e38da1d5c9643fd890ec41087dab905fdde695dcba4d53a335e97Refill227579472021-12-20 17:55:40466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.00535944681
0x8b36ae5e981ad2abb0af8af74e71cd39c59d732a4eed30f71e16628905b66e20Refill227579422021-12-20 17:55:30466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.00535944681
0x8e4e1b8e3da65dcb3c746bea23ac957b399f48cf2881175537f74850de0ca70eRefill227579372021-12-20 17:55:20466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.0049624575
0x38cb1fec355775db0e96fe45c9288a5b8bd5a667cc5aec5809ffc1d6e7889479Refill227579322021-12-20 17:55:10466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.0052932880
0x0863b41baa832086666ca9b85072d9ed38bd41b64d78da0dab3999cb9183da8cRefill227579272021-12-20 17:55:00466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.00549177883
0x5520517348435af5060990cd1b79a44c6b509e6d53f7349e2626a18eeacdc016Refill227579222021-12-20 17:54:50466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.0052932880
0x22f1304253fe56f68c4921d754b93328781fe11f76f576972146d782818ffe5aRefill227579172021-12-20 17:54:40466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.0049624575
0x1fa1e1c70d61cc649a33073c4bd9d948d1c3388ac6c2ac69215cd29999d23927Refill227579122021-12-20 17:54:30466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.0049624575
0x8c4bd9e6186dbb560ac92aa411d20d53ebefbcbdb5ff7c082ffb8ae95fa1aa34Refill227579072021-12-20 17:54:20466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.00655043499
0x550951209d8427c219d97ed74398fbfcb06f54a6241b4abd6c850ffbe34b846eRefill227579022021-12-20 17:54:10466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.0052932880
0x6e9cf2d678eedd8f1df455316715982da7fd1dac20a80afa63725124f52352d4Refill227578972021-12-20 17:54:00466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.00549177883
0x3a04b201b1b030c08c9b1ba99a50d1ae73a55be6ef6e2db89c986a7431a06a13Refill227578922021-12-20 17:53:50466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.0059549490
0xb6177ab83205e2b210394cb7d8c3b39b1999ca1c9363d170ffc7fcf738cc023bRefill227578882021-12-20 17:53:42466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.0049624575
0x583434827a5a86a2085d94ce4c6ff1d6beca057d56450b3c5af5dec9170584a2Refill227578852021-12-20 17:53:32466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.0059549490
0x4aac66f48ae474b3a7e2cebdc7c373875d1404beeeb7874f53a44a7edd19f378Refill227578802021-12-20 17:53:22466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.00549177883
0x54c7322fd3f532083f4b12b98d7e83786d019eaf3024bdfdbd8c3305df28e4c4Refill227578752021-12-20 17:53:12466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.0052932880
0x2422c7d8fb2e43efa71c115f77e331eb0ab09a2a7a7fa8f16e0092bc62322521Refill227578702021-12-20 17:53:02466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.0052932880
0x75e499ef392869f3301e2fff9ec968f59a9473873a05803014a58a0947afcdcfRefill227578652021-12-20 17:52:52466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.0062857795
0x597d7069c73b209a18c31676fd21bb70038a5260767129cd6b9edb12fc8092eeRefill227578602021-12-20 17:52:42466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.00549177883
0x1cf1897c36a57e7d57f193b60a4e51f535b4dab953cf766443aeb19f1733b30bRefill227578552021-12-20 17:52:32466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.00549177883
0xf3b06a6664c1e76a6b7b09782b3487b7fba04eb25fca355f4331a8b363c692c3Refill227578502021-12-20 17:52:22466 days 2 hrs ago0x519e23e8d6b5e1682a1635df3419828dea858018 IN  Gains Network: GFarm Vault V50 MATIC0.0066166100
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GFarmTradingVaultV5

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 999 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2021-10-12
*/

// File: contracts\interfaces\UniswapRouterInterfaceV5.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.7;

interface UniswapRouterInterfaceV5{
	function swapExactTokensForTokens(
		uint amountIn,
		uint amountOutMin,
		address[] calldata path,
		address to,
		uint deadline
	) external returns (uint[] memory amounts);

	function swapTokensForExactTokens(
		uint amountOut,
		uint amountInMax,
		address[] calldata path,
		address to,
		uint deadline
	) external returns (uint[] memory amounts);
}

// File: contracts\interfaces\AggregatorInterfaceV5.sol

pragma solidity 0.8.7;

interface AggregatorInterfaceV5{
    enum OrderType { MARKET_OPEN, MARKET_CLOSE, LIMIT_OPEN, LIMIT_CLOSE }
    function getPrice(uint,OrderType,uint) external returns(uint);
    function tokenPriceDai() external view returns(uint);
    function pairMinOpenLimitSlippageP(uint) external view returns(uint);
    function closeFeeP(uint) external view returns(uint);
    function linkFee(uint,uint) external view returns(uint);
    function openFeeP(uint) external view returns(uint);
    function pairMinLeverage(uint) external view returns(uint);
    function pairMaxLeverage(uint) external view returns(uint);
    function pairsCount() external view returns(uint);
    function tokenDaiReservesLp() external view returns(uint, uint);
    function referralP(uint) external view returns(uint);
    function nftLimitOrderFeeP(uint) external view returns(uint);
}

// File: contracts\interfaces\TokenInterfaceV5.sol

pragma solidity 0.8.7;

interface TokenInterfaceV5{
    function burn(address, uint256) external;
    function mint(address, uint256) external;
    function transfer(address, uint256) external returns (bool);
    function transferFrom(address, address, uint256) external returns(bool);
    function balanceOf(address) external view returns(uint256);
    function hasRole(bytes32, address) external view returns (bool);
    function approve(address, uint256) external returns (bool);
    function allowance(address, address) external view returns (uint256);
}

// File: contracts\interfaces\NftInterfaceV5.sol

pragma solidity 0.8.7;

interface NftInterfaceV5{
    function balanceOf(address) external view returns (uint);
    function ownerOf(uint) external view returns (address);
    function transferFrom(address, address, uint) external;
    function tokenOfOwnerByIndex(address, uint) external view returns(uint);
}

// File: contracts\interfaces\VaultInterfaceV5.sol

pragma solidity 0.8.7;

interface VaultInterfaceV5{
	function sendDaiToTrader(address, uint) external;
}

// File: contracts\interfaces\StorageInterfaceV5.sol

pragma solidity 0.8.7;






interface StorageInterfaceV5{
    enum LimitOrder { TP, SL, LIQ, OPEN }
    struct Trader{
        uint leverageUnlocked;
        address referral;
        uint referralRewardsTotal;  // 1e18
    }
    struct Trade{
        address trader;
        uint pairIndex;
        uint index;
        uint initialPosToken;       // 1e18
        uint positionSizeDai;       // 1e18
        uint openPrice;             // PRECISION
        bool buy;
        uint leverage;
        uint tp;                    // PRECISION
        uint sl;                    // PRECISION
    }
    struct TradeInfo{
        uint tokenId;
        uint tokenPriceDai;         // PRECISION
        uint openInterestDai;       // 1e18
        uint tpLastUpdated;
        uint slLastUpdated;
        bool beingMarketClosed;
    }
    struct OpenLimitOrder{
        address trader;
        uint pairIndex;
        uint index;
        uint positionSize;          // 1e18 (DAI or GFARM2)
        uint spreadReductionP;
        bool buy;
        uint leverage;
        uint tp;                    // PRECISION (%)
        uint sl;                    // PRECISION (%)
        uint minPrice;              // PRECISION
        uint maxPrice;              // PRECISION
        uint block;
        uint tokenId;               // index in supportedTokens
    }
    struct PendingMarketOrder{
        Trade trade;
        uint block;
        uint wantedPrice;           // PRECISION
        uint slippageP;             // PRECISION (%)
        uint spreadReductionP;
        uint tokenId;               // index in supportedTokens
    }
    struct PendingNftOrder{
        address nftHolder;
        uint nftId;
        address trader;
        uint pairIndex;
        uint index;
        LimitOrder orderType;
    }
    function PRECISION() external pure returns(uint);
    function gov() external view returns(address);
    function dev() external view returns(address);
    function dai() external view returns(TokenInterfaceV5);
    function token() external view returns(TokenInterfaceV5);
    function linkErc677() external view returns(TokenInterfaceV5);
    function tokenDaiRouter() external view returns(UniswapRouterInterfaceV5);
    function priceAggregator() external view returns(AggregatorInterfaceV5);
    function vault() external view returns(VaultInterfaceV5);
    function trading() external view returns(address);
    function callbacks() external view returns(address);
    function handleTokens(address,uint,bool) external;
    function transferDai(address, address, uint) external;
    function transferLinkToAggregator(address, uint, uint) external;
    function unregisterTrade(address, uint, uint) external;
    function unregisterPendingMarketOrder(uint, bool) external;
    function unregisterOpenLimitOrder(address, uint, uint) external;
    function hasOpenLimitOrder(address, uint, uint) external view returns(bool);
    function storePendingMarketOrder(PendingMarketOrder memory, uint, bool) external;
    function storeReferral(address, address) external;
    function openTrades(address, uint, uint) external view returns(Trade memory);
    function openTradesInfo(address, uint, uint) external view returns(TradeInfo memory);
    function updateSl(address, uint, uint, uint) external;
    function updateTp(address, uint, uint, uint) external;
    function getOpenLimitOrder(address, uint, uint) external view returns(OpenLimitOrder memory);
    function spreadReductionsP(uint) external view returns(uint);
    function positionSizeTokenDynamic(uint,uint) external view returns(uint);
    function maxSlP() external view returns(uint);
    function storeOpenLimitOrder(OpenLimitOrder memory) external;
    function reqID_pendingMarketOrder(uint) external view returns(PendingMarketOrder memory);
    function storePendingNftOrder(PendingNftOrder memory, uint) external;
    function updateOpenLimitOrder(OpenLimitOrder calldata) external;
    function firstEmptyTradeIndex(address, uint) external view returns(uint);
    function firstEmptyOpenLimitIndex(address, uint) external view returns(uint);
    function increaseNftRewards(uint, uint) external;
    function nftSuccessTimelock() external view returns(uint);
    function currentPercentProfit(uint,uint,bool,uint) external view returns(int);
    function reqID_pendingNftOrder(uint) external view returns(PendingNftOrder memory);
    function setNftLastSuccess(uint) external;
    function updateTrade(Trade memory) external;
    function nftLastSuccess(uint) external view returns(uint);
    function unregisterPendingNftOrder(uint) external;
    function handleDevGovFees(uint, uint, bool, bool) external returns(uint);
    function distributeLpRewards(uint) external;
    function getReferral(address) external view returns(address);
    function increaseReferralRewards(address, uint) external;
    function storeTrade(Trade memory, TradeInfo memory) external;
    function setLeverageUnlocked(address, uint) external;
    function getLeverageUnlocked(address) external view returns(uint);
    function openLimitOrdersCount(address, uint) external view returns(uint);
    function maxOpenLimitOrdersPerPair() external view returns(uint);
    function openTradesCount(address, uint) external view returns(uint);
    function pendingMarketOpenCount(address, uint) external view returns(uint);
    function pendingMarketCloseCount(address, uint) external view returns(uint);
    function maxTradesPerPair() external view returns(uint);
    function maxTradesPerBlock() external view returns(uint);
    function tradesPerBlock(uint) external view returns(uint);
    function pendingOrderIdsCount(address) external view returns(uint);
    function maxPendingMarketOrders() external view returns(uint);
    function maxGainP() external view returns(uint);
    function defaultLeverageUnlocked() external view returns(uint);
    function openInterestDai(uint, uint) external view returns(uint);
    function getPendingOrderIds(address) external view returns(uint[] memory);
    function traders(address) external view returns(Trader memory);
    function nfts(uint) external view returns(NftInterfaceV5);
}

// File: contracts\GFarmTradingVaultV5.sol


pragma solidity 0.8.7;

contract GFarmTradingVaultV5{

	// Useful constant
	uint public constant PRECISION = 1e5;

	// Contracts & Addresses
	StorageInterfaceV5 public storageT;

	// Variables
    uint public maxBalanceDai;      // 1e18
    uint public currentBalanceDai;  // block
    uint public waitBlocksBase;     // block
    uint public refillLiqP;         // PRECISION (%)
    uint public power;              // no decimal
    uint public lastRefill;         // block
    uint public swapFeeP;           // PRECISION (%)

    // Mappings
    mapping(address => uint) public daiToClaim;

    // Events
    event DaiDeposited(address caller,  uint amount, uint newCurrentBalanceDai, uint newMaxBalanceDai);
    event DaiWithdrawn(address caller, uint amount, uint newCurrentBalanceDai, uint newMaxBalanceDai);
    event DaiSent(address caller, address trader, uint amount,uint newCurrentBalanceDai, uint maxBalanceDai);
    event DaiToClaim(address caller, address trader, uint amount,uint currentBalanceDai, uint maxBalanceDai);
    event DaiClaimed(address trader, uint amount, uint newCurrentBalanceDai, uint maxBalanceDai);
    event DaiRefilled(address caller, uint daiAmount, uint newCurrentBalanceDai, uint maxBalanceDai, uint tokensMinted);

    event AddressUpdated(string name, address a);
    event NumberUpdated(string name, uint value);

    constructor(
        StorageInterfaceV5 _storageT,
        uint _waitBlocksBase, 
        uint _refillLiqP, 
        uint _power,
        uint _swapFeeP
    ){ 
        require(address(_storageT) != address(0), "ADDRESS_0");
        storageT = _storageT;
        waitBlocksBase = _waitBlocksBase;
        refillLiqP = _refillLiqP;
        power = _power;
        swapFeeP = _swapFeeP;
    }

    // Modifiers
    modifier onlyGov(){ require(msg.sender == storageT.gov(), "GOV_ONLY"); _; }
    modifier onlyCallbacks(){ require(msg.sender == storageT.callbacks(), "CALLBACKS_ONLY"); _; }

    // CAREFUL: IF ADDRESS WRONG, CONTRACT CAN BE STUCK
    function setStorageT(StorageInterfaceV5 _storageT) external onlyGov{
        require(_storageT.gov() == storageT.gov(), "WRONG_CONTRACT");
        storageT = _storageT;
        emit AddressUpdated("storageT", address(_storageT));
    }

    // Manage state
    function setWaitBlocksBase(uint _waitBlocksBase) external onlyGov{
        require(_waitBlocksBase >= 100, "BELOW_100");
    	waitBlocksBase = _waitBlocksBase;
        emit NumberUpdated("waitBlocksBase", _waitBlocksBase);
    }
    function setRefillLiqP(uint _refillLiqP) external onlyGov{
        require(_refillLiqP > 0, "VALUE_0");
        require(_refillLiqP <= 3*PRECISION/10, "ABOVE_0_POINT_3");
    	refillLiqP = _refillLiqP;
        emit NumberUpdated("refillLiqP", _refillLiqP);
    }
	function setPower(uint _power) external onlyGov{
        require(_power >= 2, "BELOW_2");
        require(_power <= 10, "ABOVE_10");
    	power = _power;
        emit NumberUpdated("power", _power);
    }
    function setSwapFeeP(uint _swapFeeP) external onlyGov{
        require(_swapFeeP <= PRECISION, "ABOVE_1");
        swapFeeP = _swapFeeP;
        emit NumberUpdated("swapFeeP", _swapFeeP);
    }

    // External functions (interaction)
    function depositDai(uint _amount) external onlyGov{
        require(_amount > 0, "AMOUNT_0");
        storageT.dai().transferFrom(msg.sender, address(this), _amount);

        currentBalanceDai += _amount;
        maxBalanceDai += _amount;

        emit DaiDeposited(msg.sender, _amount, currentBalanceDai, maxBalanceDai);
    }
    function withdrawDai(uint _amount) external onlyGov{
        require(_amount > 0, "AMOUNT_0");
        require(_amount <= currentBalanceDai, "BALANCE_TOO_LOW");
        storageT.dai().transfer(msg.sender, _amount);

        currentBalanceDai -= _amount;
        maxBalanceDai -= _amount;

        emit DaiWithdrawn(msg.sender, _amount, currentBalanceDai, maxBalanceDai);
    }
    function sendDaiToTrader(address _trader, uint _amount) external onlyCallbacks{
        _amount -= swapFeeP * _amount / 100 / PRECISION;
        _amount = _amount * slippageAmm(_amount) / PRECISION;

        if(_amount <= currentBalanceDai){
            currentBalanceDai -= _amount;
            storageT.dai().transfer(_trader, _amount);
            emit DaiSent(msg.sender, _trader, _amount, currentBalanceDai, maxBalanceDai);
        }else{
            daiToClaim[_trader] += _amount;
            emit DaiToClaim(msg.sender, _trader, _amount, currentBalanceDai, maxBalanceDai);
        }
    }
    function claimDai() external{
        uint amount = daiToClaim[msg.sender];
        require(amount > 0, "NOTHING_TO_CLAIM");
        require(currentBalanceDai > amount, "BALANCE_TOO_LOW");

        currentBalanceDai -= amount;
        storageT.dai().transfer(msg.sender, amount);
        daiToClaim[msg.sender] = 0;

        emit DaiClaimed(msg.sender, amount, currentBalanceDai, maxBalanceDai);
    }
    function refill() external{
    	require(currentBalanceDai < maxBalanceDai, "ALREADY_FULL");
    	require(canRefill(), "TOO_EARLY");

    	(uint tokenReserve, ) = storageT.priceAggregator().tokenDaiReservesLp();
    	uint tokensToMint = tokenReserve*refillLiqP/100/PRECISION;

    	storageT.handleTokens(address(this), tokensToMint, true);

        storageT.token().approve(address(storageT.tokenDaiRouter()), tokensToMint);
    	uint[] memory amounts = storageT.tokenDaiRouter().swapExactTokensForTokens(
            tokensToMint,
            0,
            tokenToDaiPath(),
            address(this),
            block.timestamp + 300
        );

        currentBalanceDai += amounts[1];
        lastRefill = block.number;

        emit DaiRefilled(msg.sender, amounts[1], currentBalanceDai, maxBalanceDai, tokensToMint);
    }

    // View functions
    function canRefill() public view returns(bool){
        return block.number >= lastRefill + blocksToWait(currentBalanceDai, maxBalanceDai);
    }
    function blocksToWait(uint _currentBalanceDai, uint _maxBalanceDai) public view returns(uint){
        uint blocks = (_currentBalanceDai*PRECISION/_maxBalanceDai)**power*waitBlocksBase/(PRECISION**power);
        return blocks >= 1 ? blocks : 1;
    }
    function slippageAmm(uint _amount) private view returns(uint){
        (, uint daiReserve) = storageT.priceAggregator().tokenDaiReservesLp();
        return PRECISION**2/(PRECISION+_amount*PRECISION/daiReserve);
    }
    function tokenToDaiPath() private view returns(address[] memory){
        address[] memory path = new address[](2);
        path[0] = address(storageT.token());
        path[1] = address(storageT.dai());
        return path;
    }

    // Useful backend function
    function backend(address _trader) external view returns(uint,uint,uint,StorageInterfaceV5.Trader memory,uint[] memory, StorageInterfaceV5.PendingMarketOrder[] memory, uint[][5] memory){
        uint[] memory pendingIds = storageT.getPendingOrderIds(_trader);

        StorageInterfaceV5.PendingMarketOrder[] memory pendingMarket = new StorageInterfaceV5.PendingMarketOrder[](pendingIds.length);
        for(uint i = 0; i < pendingIds.length; i++){
            pendingMarket[i] = storageT.reqID_pendingMarketOrder(pendingIds[i]);
        }

        uint[][5] memory nftIds;
        for(uint j = 0; j < 5; j++){
            uint nftsCount = storageT.nfts(j).balanceOf(_trader);
            nftIds[j] = new uint[](nftsCount);
            for(uint i = 0; i < nftsCount; i++){ 
                nftIds[j][i] = storageT.nfts(j).tokenOfOwnerByIndex(_trader, i); 
            }
        }

        return (
            storageT.dai().allowance(_trader, address(storageT)),
            storageT.dai().balanceOf(_trader),
            storageT.linkErc677().allowance(_trader, address(storageT)),
            storageT.traders(_trader),
            pendingIds, 
            pendingMarket, 
            nftIds
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract StorageInterfaceV5","name":"_storageT","type":"address"},{"internalType":"uint256","name":"_waitBlocksBase","type":"uint256"},{"internalType":"uint256","name":"_refillLiqP","type":"uint256"},{"internalType":"uint256","name":"_power","type":"uint256"},{"internalType":"uint256","name":"_swapFeeP","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"address","name":"a","type":"address"}],"name":"AddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"trader","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newCurrentBalanceDai","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxBalanceDai","type":"uint256"}],"name":"DaiClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newCurrentBalanceDai","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxBalanceDai","type":"uint256"}],"name":"DaiDeposited","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"daiAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newCurrentBalanceDai","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxBalanceDai","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensMinted","type":"uint256"}],"name":"DaiRefilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"address","name":"trader","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newCurrentBalanceDai","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxBalanceDai","type":"uint256"}],"name":"DaiSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"address","name":"trader","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"currentBalanceDai","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxBalanceDai","type":"uint256"}],"name":"DaiToClaim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newCurrentBalanceDai","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxBalanceDai","type":"uint256"}],"name":"DaiWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"NumberUpdated","type":"event"},{"inputs":[],"name":"PRECISION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_trader","type":"address"}],"name":"backend","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"components":[{"internalType":"uint256","name":"leverageUnlocked","type":"uint256"},{"internalType":"address","name":"referral","type":"address"},{"internalType":"uint256","name":"referralRewardsTotal","type":"uint256"}],"internalType":"struct StorageInterfaceV5.Trader","name":"","type":"tuple"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"components":[{"components":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"initialPosToken","type":"uint256"},{"internalType":"uint256","name":"positionSizeDai","type":"uint256"},{"internalType":"uint256","name":"openPrice","type":"uint256"},{"internalType":"bool","name":"buy","type":"bool"},{"internalType":"uint256","name":"leverage","type":"uint256"},{"internalType":"uint256","name":"tp","type":"uint256"},{"internalType":"uint256","name":"sl","type":"uint256"}],"internalType":"struct StorageInterfaceV5.Trade","name":"trade","type":"tuple"},{"internalType":"uint256","name":"block","type":"uint256"},{"internalType":"uint256","name":"wantedPrice","type":"uint256"},{"internalType":"uint256","name":"slippageP","type":"uint256"},{"internalType":"uint256","name":"spreadReductionP","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"internalType":"struct StorageInterfaceV5.PendingMarketOrder[]","name":"","type":"tuple[]"},{"internalType":"uint256[][5]","name":"","type":"uint256[][5]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_currentBalanceDai","type":"uint256"},{"internalType":"uint256","name":"_maxBalanceDai","type":"uint256"}],"name":"blocksToWait","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"canRefill","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimDai","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentBalanceDai","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"daiToClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"depositDai","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastRefill","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBalanceDai","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"power","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"refill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"refillLiqP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_trader","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"sendDaiToTrader","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_power","type":"uint256"}],"name":"setPower","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_refillLiqP","type":"uint256"}],"name":"setRefillLiqP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract StorageInterfaceV5","name":"_storageT","type":"address"}],"name":"setStorageT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapFeeP","type":"uint256"}],"name":"setSwapFeeP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_waitBlocksBase","type":"uint256"}],"name":"setWaitBlocksBase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"storageT","outputs":[{"internalType":"contract StorageInterfaceV5","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapFeeP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waitBlocksBase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawDai","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b50604051620033b2380380620033b28339810160408190526200003491620000b1565b6001600160a01b0385166200007b5760405162461bcd60e51b81526020600482015260096024820152680414444524553535f360bc1b604482015260640160405180910390fd5b600080546001600160a01b0319166001600160a01b03969096169590951790945560039290925560045560055560075562000108565b600080600080600060a08688031215620000ca57600080fd5b85516001600160a01b0381168114620000e257600080fd5b602087015160408801516060890151608090990151929a91995097965090945092505050565b61329a80620001186000396000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c8063500dcbe4116100e357806393a991af1161008c578063d4b46e0411610066578063d4b46e04146102e3578063dad5baf914610309578063eeb4fe271461031c57600080fd5b806393a991af146102b3578063a1d0b34a146102c6578063aaf5eb68146102d957600080fd5b806367dfd814116100bd57806367dfd8141461028e57806379fc31261461029757806392818d66146102a057600080fd5b8063500dcbe41461025d578063538e075914610266578063620ed4fe1461026e57600080fd5b8063214a9a33116101455780633ceaed961161011f5780633ceaed9614610242578063423de6391461024b5780634a4d59fa1461025457600080fd5b8063214a9a331461020957806329f79a741461021c57806335842f741461022f57600080fd5b80630851a202116101765780630851a202146101c257806316fff074146101cb5780631a92d20c146101f657600080fd5b806305caf1d014610192578063064cc89a146101b8575b600080fd5b6101a56101a0366004612d8a565b610334565b6040519081526020015b60405180910390f35b6101c06103a2565b005b6101a560025481565b6000546101de906001600160a01b031681565b6040516001600160a01b0390911681526020016101af565b6101c0610204366004612d58565b6105d0565b6101c0610217366004612b1f565b6107c4565b6101c061022a366004612d58565b610b07565b6101c061023d366004612d58565b610c95565b6101a560015481565b6101a560075481565b6101a560055481565b6101a560065481565b6101c0610f3f565b6101a561027c366004612ae5565b60086020526000908152604090205481565b6101a560035481565b6101a560045481565b6101c06102ae366004612ae5565b61151a565b6101c06102c1366004612d58565b6117db565b6101c06102d4366004612d58565b611ab8565b6101a5620186a081565b6102f66102f1366004612ae5565b611c93565b6040516101af9796959493929190612ec1565b6101c0610317366004612d58565b61257b565b610324612707565b60405190151581526020016101af565b600080600554620186a06103489190613101565b6003546005548561035c620186a0896131b9565b610366919061309c565b6103709190613101565b61037a91906131b9565b610384919061309c565b90506001811015610396576001610398565b805b9150505b92915050565b33600090815260086020526040902054806104045760405162461bcd60e51b815260206004820152601060248201527f4e4f5448494e475f544f5f434c41494d0000000000000000000000000000000060448201526064015b60405180910390fd5b80600254116104555760405162461bcd60e51b815260206004820152600f60248201527f42414c414e43455f544f4f5f4c4f57000000000000000000000000000000000060448201526064016103fb565b806002600082825461046791906131d8565b90915550506000546040805163f4b9fa7560e01b815290516001600160a01b039092169163f4b9fa7591600480820192602092909190829003018186803b1580156104b157600080fd5b505afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190612b02565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b03919091169063a9059cbb90604401602060405180830381600087803b15801561053357600080fd5b505af1158015610547573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056b9190612bf8565b503360008181526008602090815260408083209290925560025460015483519485529184018590529183019190915260608201527f0d98d6a086287050015b49e20ebf75cab73f0d199df60a2be532cff208cbb501906080015b60405180910390a150565b60008054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b15801561061c57600080fd5b505afa158015610630573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106549190612b02565b6001600160a01b0316336001600160a01b03161461069f5760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b60448201526064016103fb565b600081116106ef5760405162461bcd60e51b815260206004820152600760248201527f56414c55455f300000000000000000000000000000000000000000000000000060448201526064016103fb565b600a6106ff620186a060036131b9565b610709919061309c565b8111156107585760405162461bcd60e51b815260206004820152600f60248201527f41424f56455f305f504f494e545f33000000000000000000000000000000000060448201526064016103fb565b600481905560408051818152600a918101919091527f726566696c6c4c697150000000000000000000000000000000000000000000006060820152602081018290527f8cf3e35f6221b16e1670a3413180c9484bf5aa71787905909fa82a6a2662e9ab906080016105c5565b60008054906101000a90046001600160a01b03166001600160a01b031662b127836040518163ffffffff1660e01b815260040160206040518083038186803b15801561080f57600080fd5b505afa158015610823573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108479190612b02565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260206004820152600e60248201527f43414c4c4241434b535f4f4e4c5900000000000000000000000000000000000060448201526064016103fb565b620186a06064826007546108bb91906131b9565b6108c5919061309c565b6108cf919061309c565b6108d990826131d8565b9050620186a06108e88261272c565b6108f290836131b9565b6108fc919061309c565b90506002548111610a8157806002600082825461091991906131d8565b90915550506000546040805163f4b9fa7560e01b815290516001600160a01b039092169163f4b9fa7591600480820192602092909190829003018186803b15801561096357600080fd5b505afa158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099b9190612b02565b60405163a9059cbb60e01b81526001600160a01b03848116600483015260248201849052919091169063a9059cbb90604401602060405180830381600087803b1580156109e757600080fd5b505af11580156109fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1f9190612bf8565b50600254600154604080513381526001600160a01b0386166020820152908101849052606081019290925260808201527fe3a8ac5b925ed889cf369735f3f18d90350f77f6165d216fa3638f406833b37a9060a0015b60405180910390a15050565b6001600160a01b03821660009081526008602052604081208054839290610aa9908490613084565b9091555050600254600154604080513381526001600160a01b0386166020820152908101849052606081019290925260808201527f4cf5a0000f2c98450556f77aef5e040599b31bcf6c2f157211c9957685dd84669060a001610a75565b60008054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b158015610b5357600080fd5b505afa158015610b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8b9190612b02565b6001600160a01b0316336001600160a01b031614610bd65760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b60448201526064016103fb565b620186a0811115610c295760405162461bcd60e51b815260206004820152600760248201527f41424f56455f310000000000000000000000000000000000000000000000000060448201526064016103fb565b6007819055604080518181526008918101919091527f73776170466565500000000000000000000000000000000000000000000000006060820152602081018290527f8cf3e35f6221b16e1670a3413180c9484bf5aa71787905909fa82a6a2662e9ab906080016105c5565b60008054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b158015610ce157600080fd5b505afa158015610cf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d199190612b02565b6001600160a01b0316336001600160a01b031614610d645760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b60448201526064016103fb565b60008111610d9f5760405162461bcd60e51b81526020600482015260086024820152670414d4f554e545f360c41b60448201526064016103fb565b60008054906101000a90046001600160a01b03166001600160a01b031663f4b9fa756040518163ffffffff1660e01b815260040160206040518083038186803b158015610deb57600080fd5b505afa158015610dff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e239190612b02565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390526001600160a01b0391909116906323b872dd90606401602060405180830381600087803b158015610e8c57600080fd5b505af1158015610ea0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec49190612bf8565b508060026000828254610ed79190613084565b925050819055508060016000828254610ef09190613084565b909155505060025460015460408051338152602081018590529081019290925260608201527fc946fd90f4dfeff042a05c64922e7d212d4af8bbcee5a200afb815c833bdbcf6906080016105c5565b60015460025410610f925760405162461bcd60e51b815260206004820152600c60248201527f414c52454144595f46554c4c000000000000000000000000000000000000000060448201526064016103fb565b610f9a612707565b610fe65760405162461bcd60e51b815260206004820152600960248201527f544f4f5f4541524c59000000000000000000000000000000000000000000000060448201526064016103fb565b60008060009054906101000a90046001600160a01b03166001600160a01b0316633078fff56040518163ffffffff1660e01b815260040160206040518083038186803b15801561103557600080fd5b505afa158015611049573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106d9190612b02565b6001600160a01b0316633a2fbfab6040518163ffffffff1660e01b8152600401604080518083038186803b1580156110a457600080fd5b505afa1580156110b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110dc9190612dac565b5090506000620186a06064600454846110f591906131b9565b6110ff919061309c565b611109919061309c565b6000546040517f5378143e00000000000000000000000000000000000000000000000000000000815230600482015260248101839052600160448201529192506001600160a01b031690635378143e90606401600060405180830381600087803b15801561117657600080fd5b505af115801561118a573d6000803e3d6000fd5b5050505060008054906101000a90046001600160a01b03166001600160a01b031663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156111da57600080fd5b505afa1580156111ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112129190612b02565b6001600160a01b031663095ea7b360008054906101000a90046001600160a01b03166001600160a01b031663f2c13bdf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561126c57600080fd5b505afa158015611280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a49190612b02565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260248101849052604401602060405180830381600087803b15801561130457600080fd5b505af1158015611318573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133c9190612bf8565b5060008060009054906101000a90046001600160a01b03166001600160a01b031663f2c13bdf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561138c57600080fd5b505afa1580156113a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c49190612b02565b6001600160a01b03166338ed17398360006113dd612879565b306113ea4261012c613084565b6040518663ffffffff1660e01b815260040161140a959493929190612e50565b600060405180830381600087803b15801561142457600080fd5b505af1158015611438573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114609190810190612b4b565b90508060018151811061147557611475613220565b60200260200101516002600082825461148e9190613084565b90915550504360065580517f2f27d174b3223dcd8f94421046d8794ee490188a974fa8ea4dab2648e1c895c2903390839060019081106114d0576114d0613220565b602090810291909101810151600254600154604080516001600160a01b039690961686529385019290925283830152606083015260808201859052519081900360a00190a1505050565b60008054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b15801561156657600080fd5b505afa15801561157a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159e9190612b02565b6001600160a01b0316336001600160a01b0316146115e95760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b60448201526064016103fb565b60008054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b15801561163557600080fd5b505afa158015611649573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166d9190612b02565b6001600160a01b0316816001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b1580156116af57600080fd5b505afa1580156116c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e79190612b02565b6001600160a01b03161461173d5760405162461bcd60e51b815260206004820152600e60248201527f57524f4e475f434f4e545241435400000000000000000000000000000000000060448201526064016103fb565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316908117909155604080518181526008918101919091527f73746f7261676554000000000000000000000000000000000000000000000000606082015260208101919091527f943e9d45a11aaae5d87503e3bc248665d9807856e5cf2bdb4a988bee44422781906080016105c5565b60008054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b15801561182757600080fd5b505afa15801561183b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185f9190612b02565b6001600160a01b0316336001600160a01b0316146118aa5760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b60448201526064016103fb565b600081116118e55760405162461bcd60e51b81526020600482015260086024820152670414d4f554e545f360c41b60448201526064016103fb565b6002548111156119375760405162461bcd60e51b815260206004820152600f60248201527f42414c414e43455f544f4f5f4c4f57000000000000000000000000000000000060448201526064016103fb565b60008054906101000a90046001600160a01b03166001600160a01b031663f4b9fa756040518163ffffffff1660e01b815260040160206040518083038186803b15801561198357600080fd5b505afa158015611997573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119bb9190612b02565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b03919091169063a9059cbb90604401602060405180830381600087803b158015611a0557600080fd5b505af1158015611a19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3d9190612bf8565b508060026000828254611a5091906131d8565b925050819055508060016000828254611a6991906131d8565b909155505060025460015460408051338152602081018590529081019290925260608201527ff66a18425ccfa05fd0a860e5653ad3553bce3bacb9dec1c7ef1bfa53e6047584906080016105c5565b60008054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0457600080fd5b505afa158015611b18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3c9190612b02565b6001600160a01b0316336001600160a01b031614611b875760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b60448201526064016103fb565b6002811015611bd85760405162461bcd60e51b815260206004820152600760248201527f42454c4f575f320000000000000000000000000000000000000000000000000060448201526064016103fb565b600a811115611c295760405162461bcd60e51b815260206004820152600860248201527f41424f56455f313000000000000000000000000000000000000000000000000060448201526064016103fb565b600581815560408051818152908101919091527f706f7765720000000000000000000000000000000000000000000000000000006060820152602081018290527f8cf3e35f6221b16e1670a3413180c9484bf5aa71787905909fa82a6a2662e9ab906080016105c5565b6000806000611cc560405180606001604052806000815260200160006001600160a01b03168152602001600081525090565b606080611cd0612a09565b600080546040517f5c76ac9e0000000000000000000000000000000000000000000000000000000081526001600160a01b038b8116600483015290911690635c76ac9e9060240160006040518083038186803b158015611d2f57600080fd5b505afa158015611d43573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d6b9190810190612b4b565b90506000815167ffffffffffffffff811115611d8957611d89613236565b604051908082528060200260200182016040528015611dc257816020015b611daf612a30565b815260200190600190039081611da75790505b50905060005b8251811015611ea15760005483516001600160a01b039091169063b66e6b0590859084908110611dfa57611dfa613220565b60200260200101516040518263ffffffff1660e01b8152600401611e2091815260200190565b6101e06040518083038186803b158015611e3957600080fd5b505afa158015611e4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e719190612c13565b828281518110611e8357611e83613220565b60200260200101819052508080611e99906131ef565b915050611dc8565b50611eaa612a09565b60005b600581101561217c576000805460405163265aa62160e01b8152600481018490526001600160a01b039091169063265aa6219060240160206040518083038186803b158015611efb57600080fd5b505afa158015611f0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f339190612b02565b6040516370a0823160e01b81526001600160a01b038f8116600483015291909116906370a082319060240160206040518083038186803b158015611f7657600080fd5b505afa158015611f8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fae9190612d71565b90508067ffffffffffffffff811115611fc957611fc9613236565b604051908082528060200260200182016040528015611ff2578160200160208202803683370190505b5083836005811061200557612005613220565b602002015260005b818110156121675760005460405163265aa62160e01b8152600481018590526001600160a01b039091169063265aa6219060240160206040518083038186803b15801561205957600080fd5b505afa15801561206d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120919190612b02565b6001600160a01b0316632f745c598f836040518363ffffffff1660e01b81526004016120d29291906001600160a01b03929092168252602082015260400190565b60206040518083038186803b1580156120ea57600080fd5b505afa1580156120fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121229190612d71565b84846005811061213457612134613220565b6020020151828151811061214a5761214a613220565b60209081029190910101528061215f816131ef565b91505061200d565b50508080612174906131ef565b915050611ead565b5060008054906101000a90046001600160a01b03166001600160a01b031663f4b9fa756040518163ffffffff1660e01b815260040160206040518083038186803b1580156121c957600080fd5b505afa1580156121dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122019190612b02565b6000546040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b038e81166004830152918216602482015291169063dd62ed3e9060440160206040518083038186803b15801561226657600080fd5b505afa15801561227a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229e9190612d71565b60008054906101000a90046001600160a01b03166001600160a01b031663f4b9fa756040518163ffffffff1660e01b815260040160206040518083038186803b1580156122ea57600080fd5b505afa1580156122fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123229190612b02565b6040516370a0823160e01b81526001600160a01b038e8116600483015291909116906370a082319060240160206040518083038186803b15801561236557600080fd5b505afa158015612379573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061239d9190612d71565b60008054906101000a90046001600160a01b03166001600160a01b031663fece4eac6040518163ffffffff1660e01b815260040160206040518083038186803b1580156123e957600080fd5b505afa1580156123fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124219190612b02565b6001600160a01b031663dd62ed3e8e60008054906101000a90046001600160a01b03166040518363ffffffff1660e01b81526004016124769291906001600160a01b0392831681529116602082015260400190565b60206040518083038186803b15801561248e57600080fd5b505afa1580156124a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c69190612d71565b60008054906101000a90046001600160a01b03166001600160a01b03166392a88fa28f6040518263ffffffff1660e01b815260040161251491906001600160a01b0391909116815260200190565b60606040518083038186803b15801561252c57600080fd5b505afa158015612540573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125649190612cf6565b929e919d509b509099509297509095509350915050565b60008054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b1580156125c757600080fd5b505afa1580156125db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ff9190612b02565b6001600160a01b0316336001600160a01b03161461264a5760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b60448201526064016103fb565b606481101561269b5760405162461bcd60e51b815260206004820152600960248201527f42454c4f575f313030000000000000000000000000000000000000000000000060448201526064016103fb565b600381905560408051818152600e918101919091527f77616974426c6f636b73426173650000000000000000000000000000000000006060820152602081018290527f8cf3e35f6221b16e1670a3413180c9484bf5aa71787905909fa82a6a2662e9ab906080016105c5565b6000612717600254600154610334565b6006546127249190613084565b431015905090565b60008054604080517f3078fff5000000000000000000000000000000000000000000000000000000008152905183926001600160a01b031691633078fff5916004808301926020929190829003018186803b15801561278a57600080fd5b505afa15801561279e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c29190612b02565b6001600160a01b0316633a2fbfab6040518163ffffffff1660e01b8152600401604080518083038186803b1580156127f957600080fd5b505afa15801561280d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128319190612dac565b9150819050612843620186a0856131b9565b61284d919061309c565b61285a90620186a0613084565b6128686002620186a061310d565b612872919061309c565b9392505050565b6040805160028082526060808301845292600092919060208301908036833701905050905060008054906101000a90046001600160a01b03166001600160a01b031663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156128ea57600080fd5b505afa1580156128fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129229190612b02565b8160008151811061293557612935613220565b60200260200101906001600160a01b031690816001600160a01b03168152505060008054906101000a90046001600160a01b03166001600160a01b031663f4b9fa756040518163ffffffff1660e01b815260040160206040518083038186803b1580156129a157600080fd5b505afa1580156129b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d99190612b02565b816001815181106129ec576129ec613220565b6001600160a01b0390921660209283029190910190910152919050565b6040518060a001604052806005905b6060815260200190600190039081612a185790505090565b6040518060c00160405280612a9c60405180610140016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000815260200160008152602001600081525090565b815260200160008152602001600081526020016000815260200160008152602001600081525090565b8051612ad08161324c565b919050565b80518015158114612ad057600080fd5b600060208284031215612af757600080fd5b81356103968161324c565b600060208284031215612b1457600080fd5b81516103968161324c565b60008060408385031215612b3257600080fd5b8235612b3d8161324c565b946020939093013593505050565b60006020808385031215612b5e57600080fd5b825167ffffffffffffffff80821115612b7657600080fd5b818501915085601f830112612b8a57600080fd5b815181811115612b9c57612b9c613236565b8060051b9150612bad848301613053565b8181528481019084860184860187018a1015612bc857600080fd5b600095505b83861015612beb578051835260019590950194918601918601612bcd565b5098975050505050505050565b600060208284031215612c0a57600080fd5b61287282612ad5565b60008183036101e0811215612c2757600080fd5b612c2f613006565b61014080831215612c3f57600080fd5b612c4761302f565b9250612c5285612ac5565b83526020850151602084015260408501516040840152606085015160608401526080850151608084015260a085015160a0840152612c9260c08601612ad5565b60c084015260e0858101519084015261010080860151908401526101208086015190840152918152908301516020820152610160830151604082015261018083015160608201526101a083015160808201526101c09092015160a083015250919050565b600060608284031215612d0857600080fd5b6040516060810181811067ffffffffffffffff82111715612d2b57612d2b613236565b604052825181526020830151612d408161324c565b60208201526040928301519281019290925250919050565b600060208284031215612d6a57600080fd5b5035919050565b600060208284031215612d8357600080fd5b5051919050565b60008060408385031215612d9d57600080fd5b50508035926020909101359150565b60008060408385031215612dbf57600080fd5b505080516020909101519092909150565b60008260a081018360005b6005811015612e0a578383038752612df4838351612e15565b6020978801979093509190910190600101612ddb565b509095945050505050565b600081518084526020808501945080840160005b83811015612e4557815187529582019590820190600101612e29565b509495945050505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612ea05784516001600160a01b031683529383019391830191600101612e7b565b50506001600160a01b03969096166060850152505050608001529392505050565b600061012089835260208981850152604089818601526060895181870152828a015160806001600160a01b03821681890152838c0151915060a082818a015260c0925086838a0152612f15878a018d612e15565b89810360e08b8101919091528c51808352888e019289019060005b81811015612fd9578451805180516001600160a01b031685528c8101518d8601528b8101518c8601528a8101518b860152888101518986015287810151888601528981015115158a860152858101518686015261010080820151908601528d01518d8501528b8101516101408501528a81015161016085015289810151610180850152878101516101a08501528601516101c0840152938a01936101e090920191600101612f30565b50508b81036101008d0152612fee818e612dd0565b9a505050505050505050505098975050505050505050565b60405160c0810167ffffffffffffffff8111828210171561302957613029613236565b60405290565b604051610140810167ffffffffffffffff8111828210171561302957613029613236565b604051601f8201601f1916810167ffffffffffffffff8111828210171561307c5761307c613236565b604052919050565b600082198211156130975761309761320a565b500190565b6000826130b957634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156130f95781600019048211156130df576130df61320a565b808516156130ec57918102915b93841c93908002906130c3565b509250929050565b60006128728383613118565b600061287260ff8416835b6000826131275750600161039c565b816131345750600061039c565b816001811461314a576002811461315457613170565b600191505061039c565b60ff8411156131655761316561320a565b50506001821b61039c565b5060208310610133831016604e8410600b8410161715613193575081810a61039c565b61319d83836130be565b80600019048211156131b1576131b161320a565b029392505050565b60008160001904831182151516156131d3576131d361320a565b500290565b6000828210156131ea576131ea61320a565b500390565b60006000198214156132035761320361320a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461326157600080fd5b5056fea264697066735822122018171afbf131f672438cc2c095c590737612c1aac93b85bd2e28ea1be3b8d58464736f6c63430008070033000000000000000000000000aee4d11a16b2bc65edd6416fb626eb404a6d65bd00000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000007530

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

000000000000000000000000aee4d11a16b2bc65edd6416fb626eb404a6d65bd00000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000007530

-----Decoded View---------------
Arg [0] : _storageT (address): 0xaee4d11a16b2bc65edd6416fb626eb404a6d65bd
Arg [1] : _waitBlocksBase (uint256): 1000
Arg [2] : _refillLiqP (uint256): 10000
Arg [3] : _power (uint256): 5
Arg [4] : _swapFeeP (uint256): 30000

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000aee4d11a16b2bc65edd6416fb626eb404a6d65bd
Arg [1] : 00000000000000000000000000000000000000000000000000000000000003e8
Arg [2] : 0000000000000000000000000000000000000000000000000000000000002710
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [4] : 0000000000000000000000000000000000000000000000000000000000007530


Deployed ByteCode Sourcemap

9102:8072:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15174:254;;;;;;:::i;:::-;;:::i;:::-;;;18404:25:1;;;18392:2;18377:18;15174:254:0;;;;;;;;13721:411;;;:::i;:::-;;9329:29;;;;;;9226:34;;;;;-1:-1:-1;;;;;9226:34:0;;;;;;-1:-1:-1;;;;;7960:55:1;;;7942:74;;7930:2;7915:18;9226:34:0;7796:226:1;11643:267:0;;;;;;:::i;:::-;;:::i;13107:608::-;;;;;;:::i;:::-;;:::i;12128:197::-;;;;;;:::i;:::-;;:::i;12374:336::-;;;;;;:::i;:::-;;:::i;9284:25::-;;;;;;9572:20;;;;;;9475:17;;;;;;9526:22;;;;;;14138:852;;;:::i;9645:42::-;;;;;;:::i;:::-;;;;;;;;;;;;;;9375:26;;;;;;9421:22;;;;;;11137:239;;;;;;:::i;:::-;;:::i;12716:385::-;;;;;;:::i;:::-;;:::i;11913:209::-;;;;;;:::i;:::-;;:::i;9157:36::-;;9190:3;9157:36;;15935:1236;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;:::i;11405:232::-;;;;;;:::i;:::-;;:::i;15021:147::-;;;:::i;:::-;;;11121:14:1;;11114:22;11096:41;;11084:2;11069:18;15021:147:0;10956:187:1;15174:254:0;15262:4;15278:11;15372:5;;9190:3;15361:16;;;;:::i;:::-;15345:14;;15339:5;;15322:14;15293:28;9190:3;15293:18;:28;:::i;:::-;:43;;;;:::i;:::-;15292:52;;;;:::i;:::-;:67;;;;:::i;:::-;:86;;;;:::i;:::-;15278:100;;15406:1;15396:6;:11;;:24;;15419:1;15396:24;;;15410:6;15396:24;15389:31;;;15174:254;;;;;:::o;13721:411::-;13785:10;13760:11;13774:22;;;:10;:22;;;;;;13815:10;13807:39;;;;-1:-1:-1;;;13807:39:0;;13795:2:1;13807:39:0;;;13777:21:1;13834:2;13814:18;;;13807:30;13873:18;13853;;;13846:46;13909:18;;13807:39:0;;;;;;;;;13885:6;13865:17;;:26;13857:54;;;;-1:-1:-1;;;13857:54:0;;13451:2:1;13857:54:0;;;13433:21:1;13490:2;13470:18;;;13463:30;13529:17;13509:18;;;13502:45;13564:18;;13857:54:0;13249:339:1;13857:54:0;13945:6;13924:17;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;;13962:8:0;;:14;;;-1:-1:-1;;;13962:14:0;;;;-1:-1:-1;;;;;13962:8:0;;;;:12;;:14;;;;;;;;;;;;;;;:8;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;;-1:-1:-1;;;13962:43:0;;13986:10;13962:43;;;9483:74:1;9573:18;;;9566:34;;;-1:-1:-1;;;;;13962:23:0;;;;;;;9456:18:1;;13962:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;14027:10:0;14041:1;14016:22;;;:10;:22;;;;;;;;:26;;;;14091:17;;14110:13;;14060:64;;10225:74:1;;;10315:18;;;10308:34;;;10358:18;;;10351:34;;;;10416:2;10401:18;;10394:34;14060:64:0;;10212:3:1;10197:19;14060:64:0;;;;;;;;13749:383;13721:411::o;11643:267::-;10940:8;;;;;;;;-1:-1:-1;;;;;10940:8:0;-1:-1:-1;;;;;10940:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10926:28:0;:10;-1:-1:-1;;;;;10926:28:0;;10918:49;;;;-1:-1:-1;;;10918:49:0;;17110:2:1;10918:49:0;;;17092:21:1;17149:1;17129:18;;;17122:29;-1:-1:-1;;;17167:18:1;;;17160:38;17215:18;;10918:49:0;16908:331:1;10918:49:0;11733:1:::1;11719:11;:15;11711:35;;;::::0;-1:-1:-1;;;11711:35:0;;17782:2:1;11711:35:0::1;::::0;::::1;17764:21:1::0;17821:1;17801:18;;;17794:29;17859:9;17839:18;;;17832:37;17886:18;;11711:35:0::1;17580:330:1::0;11711:35:0::1;11792:2;11780:11;9190:3;11780:1;:11;:::i;:::-;:14;;;;:::i;:::-;11765:11;:29;;11757:57;;;::::0;-1:-1:-1;;;11757:57:0;;12363:2:1;11757:57:0::1;::::0;::::1;12345:21:1::0;12402:2;12382:18;;;12375:30;12441:17;12421:18;;;12414:45;12476:18;;11757:57:0::1;12161:339:1::0;11757:57:0::1;11822:10;:24:::0;;;11862:40:::1;::::0;;11617:21:1;;;11674:2;11654:18;;;11647:30;;;;11713:12;11708:2;11693:18;;11686:40;11793:4;11778:20;;11771:36;;;11862:40:0::1;::::0;11758:3:1;11743:19;11862:40:0::1;11405:408:1::0;13107:608:0;11027:8;;;;;;;;-1:-1:-1;;;;;11027:8:0;-1:-1:-1;;;;;11027:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11013:34:0;:10;-1:-1:-1;;;;;11013:34:0;;11005:61;;;;-1:-1:-1;;;11005:61:0;;12020:2:1;11005:61:0;;;12002:21:1;12059:2;12039:18;;;12032:30;12098:16;12078:18;;;12071:44;12132:18;;11005:61:0;11818:338:1;11005:61:0;9190:3:::1;13228;13218:7;13207:8;;:18;;;;:::i;:::-;:24;;;;:::i;:::-;:36;;;;:::i;:::-;13196:47;::::0;;::::1;:::i;:::-;;;9190:3;13274:20;13286:7;13274:11;:20::i;:::-;13264:30;::::0;:7;:30:::1;:::i;:::-;:42;;;;:::i;:::-;13254:52;;13333:17;;13322:7;:28;13319:389;;13387:7;13366:17;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;13409:8:0::1;::::0;:14:::1;::::0;;-1:-1:-1;;;13409:14:0;;;;-1:-1:-1;;;;;13409:8:0;;::::1;::::0;:12:::1;::::0;:14:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;:8;:14;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:41;::::0;-1:-1:-1;;;13409:41:0;;-1:-1:-1;;;;;9501:55:1;;;13409:41:0::1;::::0;::::1;9483:74:1::0;9573:18;;;9566:34;;;13409:23:0;;;::::1;::::0;::::1;::::0;9456:18:1;;13409:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13508:17:0::1;::::0;13527:13:::1;::::0;13470:71:::1;::::0;;13478:10:::1;9082:34:1::0;;-1:-1:-1;;;;;9152:15:1;;9147:2;9132:18;;9125:43;9184:18;;;9177:34;;;9242:2;9227:18;;9220:34;;;;9285:3;9270:19;;9263:35;13470:71:0::1;::::0;9008:3:1;8993:19;13470:71:0::1;;;;;;;;13107:608:::0;;:::o;13319:389::-:1;-1:-1:-1::0;;;;;13572:19:0;::::1;;::::0;;;:10:::1;:19;::::0;;;;:30;;13595:7;;13572:19;:30:::1;::::0;13595:7;;13572:30:::1;:::i;:::-;::::0;;;-1:-1:-1;;13663:17:0::1;::::0;13682:13:::1;::::0;13622:74:::1;::::0;;13633:10:::1;9082:34:1::0;;-1:-1:-1;;;;;9152:15:1;;9147:2;9132:18;;9125:43;9184:18;;;9177:34;;;9242:2;9227:18;;9220:34;;;;9285:3;9270:19;;9263:35;13622:74:0::1;::::0;9008:3:1;8993:19;13622:74:0::1;8762:542:1::0;12128:197:0;10940:8;;;;;;;;-1:-1:-1;;;;;10940:8:0;-1:-1:-1;;;;;10940:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10926:28:0;:10;-1:-1:-1;;;;;10926:28:0;;10918:49;;;;-1:-1:-1;;;10918:49:0;;17110:2:1;10918:49:0;;;17092:21:1;17149:1;17129:18;;;17122:29;-1:-1:-1;;;17167:18:1;;;17160:38;17215:18;;10918:49:0;16908:331:1;10918:49:0;9190:3:::1;12200:9;:22;;12192:42;;;::::0;-1:-1:-1;;;12192:42:0;;14140:2:1;12192:42:0::1;::::0;::::1;14122:21:1::0;14179:1;14159:18;;;14152:29;14217:9;14197:18;;;14190:37;14244:18;;12192:42:0::1;13938:330:1::0;12192:42:0::1;12245:8;:20:::0;;;12281:36:::1;::::0;;14826:21:1;;;14883:1;14863:18;;;14856:29;;;;14921:10;14916:2;14901:18;;14894:38;14999:4;14984:20;;14977:36;;;12281::0::1;::::0;14964:3:1;14949:19;12281:36:0::1;14614:405:1::0;12374:336:0;10940:8;;;;;;;;-1:-1:-1;;;;;10940:8:0;-1:-1:-1;;;;;10940:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10926:28:0;:10;-1:-1:-1;;;;;10926:28:0;;10918:49;;;;-1:-1:-1;;;10918:49:0;;17110:2:1;10918:49:0;;;17092:21:1;17149:1;17129:18;;;17122:29;-1:-1:-1;;;17167:18:1;;;17160:38;17215:18;;10918:49:0;16908:331:1;10918:49:0;12453:1:::1;12443:7;:11;12435:32;;;::::0;-1:-1:-1;;;12435:32:0;;16357:2:1;12435:32:0::1;::::0;::::1;16339:21:1::0;16396:1;16376:18;;;16369:29;-1:-1:-1;;;16414:18:1;;;16407:38;16462:18;;12435:32:0::1;16155:331:1::0;12435:32:0::1;12478:8;::::0;::::1;;;;;;-1:-1:-1::0;;;;;12478:8:0::1;-1:-1:-1::0;;;;;12478:12:0::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:63;::::0;;;;12506:10:::1;12478:63;::::0;::::1;8622:34:1::0;12526:4:0::1;8672:18:1::0;;;8665:43;8724:18;;;8717:34;;;-1:-1:-1;;;;;12478:27:0;;;::::1;::::0;::::1;::::0;8534:18:1;;12478:63:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12575:7;12554:17;;:28;;;;;;;:::i;:::-;;;;;;;;12610:7;12593:13;;:24;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;12669:17:0::1;::::0;12688:13:::1;::::0;12635:67:::1;::::0;;12648:10:::1;10225:74:1::0;;10330:2;10315:18;;10308:34;;;10358:18;;;10351:34;;;;10416:2;10401:18;;10394:34;12635:67:0::1;::::0;10212:3:1;10197:19;12635:67:0::1;9994:440:1::0;14138:852:0;14200:13;;14180:17;;:33;14172:58;;;;-1:-1:-1;;;14172:58:0;;14475:2:1;14172:58:0;;;14457:21:1;14514:2;14494:18;;;14487:30;14553:14;14533:18;;;14526:42;14585:18;;14172:58:0;14273:336:1;14172:58:0;14246:11;:9;:11::i;:::-;14238:33;;;;-1:-1:-1;;;14238:33:0;;13114:2:1;14238:33:0;;;13096:21:1;13153:1;13133:18;;;13126:29;13191:11;13171:18;;;13164:39;13220:18;;14238:33:0;12912:332:1;14238:33:0;14282:17;14305:8;;;;;;;;;-1:-1:-1;;;;;14305:8:0;-1:-1:-1;;;;;14305:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14305:45:0;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14281:71;;;14360:17;9190:3;14404;14393:10;;14380:12;:23;;;;:::i;:::-;:27;;;;:::i;:::-;:37;;;;:::i;:::-;14427:8;;:56;;;;;14457:4;14427:56;;;9807:74:1;9897:18;;;9890:34;;;14427:8:0;9940:18:1;;;9933:50;14360:57:0;;-1:-1:-1;;;;;;14427:8:0;;:21;;9780:18:1;;14427:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14496:8;;;;;;;;-1:-1:-1;;;;;14496:8:0;-1:-1:-1;;;;;14496:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14496:24:0;;14529:8;;;;;;;;-1:-1:-1;;;;;14529:8:0;-1:-1:-1;;;;;14529:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14496:74;;;;;;;;;;-1:-1:-1;;;;;9501:55:1;;;14496:74:0;;;9483::1;9573:18;;;9566:34;;;9456:18;;14496:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14578:21;14602:8;;;;;;;;;-1:-1:-1;;;;;14602:8:0;-1:-1:-1;;;;;14602:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14602:50:0;;14667:12;14694:1;14710:16;:14;:16::i;:::-;14749:4;14769:21;:15;14787:3;14769:21;:::i;:::-;14602:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14602:199:0;;;;;;;;;;;;:::i;:::-;14578:223;;14835:7;14843:1;14835:10;;;;;;;;:::i;:::-;;;;;;;14814:17;;:31;;;;;;;:::i;:::-;;;;-1:-1:-1;;14869:12:0;14856:10;:25;14923:10;;14899:83;;14911:10;;14923:7;;14931:1;;14923:10;;;;;;:::i;:::-;;;;;;;;;;;;14935:17;;14954:13;;14899:83;;;-1:-1:-1;;;;;10716:55:1;;;;10698:74;;10788:18;;;10781:34;;;;10831:18;;;10824:34;10889:2;10874:18;;10867:34;10932:3;10917:19;;10910:35;;;14899:83:0;;;;;10685:3:1;14899:83:0;;;14164:826;;;14138:852::o;11137:239::-;10940:8;;;;;;;;-1:-1:-1;;;;;10940:8:0;-1:-1:-1;;;;;10940:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10926:28:0;:10;-1:-1:-1;;;;;10926:28:0;;10918:49;;;;-1:-1:-1;;;10918:49:0;;17110:2:1;10918:49:0;;;17092:21:1;17149:1;17129:18;;;17122:29;-1:-1:-1;;;17167:18:1;;;17160:38;17215:18;;10918:49:0;16908:331:1;10918:49:0;11242:8:::1;::::0;::::1;;;;;;-1:-1:-1::0;;;;;11242:8:0::1;-1:-1:-1::0;;;;;11242:12:0::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11223:33:0::1;:9;-1:-1:-1::0;;;;;11223:13:0::1;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11223:33:0::1;;11215:60;;;::::0;-1:-1:-1;;;11215:60:0;;18117:2:1;11215:60:0::1;::::0;::::1;18099:21:1::0;18156:2;18136:18;;;18129:30;18195:16;18175:18;;;18168:44;18229:18;;11215:60:0::1;17915:338:1::0;11215:60:0::1;11286:8;:20:::0;;;::::1;-1:-1:-1::0;;;;;11286:20:0;::::1;::::0;;::::1;::::0;;;11322:46:::1;::::0;;15236:21:1;;;15293:1;15273:18;;;15266:29;;;;15331:10;15326:2;15311:18;;15304:38;15409:4;15394:20;;15387:85;;;;11322:46:0::1;::::0;15374:3:1;15359:19;11322:46:0::1;15024:454:1::0;12716:385:0;10940:8;;;;;;;;-1:-1:-1;;;;;10940:8:0;-1:-1:-1;;;;;10940:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10926:28:0;:10;-1:-1:-1;;;;;10926:28:0;;10918:49;;;;-1:-1:-1;;;10918:49:0;;17110:2:1;10918:49:0;;;17092:21:1;17149:1;17129:18;;;17122:29;-1:-1:-1;;;17167:18:1;;;17160:38;17215:18;;10918:49:0;16908:331:1;10918:49:0;12796:1:::1;12786:7;:11;12778:32;;;::::0;-1:-1:-1;;;12778:32:0;;16357:2:1;12778:32:0::1;::::0;::::1;16339:21:1::0;16396:1;16376:18;;;16369:29;-1:-1:-1;;;16414:18:1;;;16407:38;16462:18;;12778:32:0::1;16155:331:1::0;12778:32:0::1;12840:17;;12829:7;:28;;12821:56;;;::::0;-1:-1:-1;;;12821:56:0;;13451:2:1;12821:56:0::1;::::0;::::1;13433:21:1::0;13490:2;13470:18;;;13463:30;13529:17;13509:18;;;13502:45;13564:18;;12821:56:0::1;13249:339:1::0;12821:56:0::1;12888:8;::::0;::::1;;;;;;-1:-1:-1::0;;;;;12888:8:0::1;-1:-1:-1::0;;;;;12888:12:0::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;::::0;-1:-1:-1;;;12888:44:0;;12912:10:::1;12888:44;::::0;::::1;9483:74:1::0;9573:18;;;9566:34;;;-1:-1:-1;;;;;12888:23:0;;;::::1;::::0;::::1;::::0;9456:18:1;;12888:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12966:7;12945:17;;:28;;;;;;;:::i;:::-;;;;;;;;13001:7;12984:13;;:24;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;13060:17:0::1;::::0;13079:13:::1;::::0;13026:67:::1;::::0;;13039:10:::1;10225:74:1::0;;10330:2;10315:18;;10308:34;;;10358:18;;;10351:34;;;;10416:2;10401:18;;10394:34;13026:67:0::1;::::0;10212:3:1;10197:19;13026:67:0::1;9994:440:1::0;11913:209:0;10940:8;;;;;;;;-1:-1:-1;;;;;10940:8:0;-1:-1:-1;;;;;10940:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10926:28:0;:10;-1:-1:-1;;;;;10926:28:0;;10918:49;;;;-1:-1:-1;;;10918:49:0;;17110:2:1;10918:49:0;;;17092:21:1;17149:1;17129:18;;;17122:29;-1:-1:-1;;;17167:18:1;;;17160:38;17215:18;;10918:49:0;16908:331:1;10918:49:0;11989:1:::1;11979:6;:11;;11971:31;;;::::0;-1:-1:-1;;;11971:31:0;;16022:2:1;11971:31:0::1;::::0;::::1;16004:21:1::0;16061:1;16041:18;;;16034:29;16099:9;16079:18;;;16072:37;16126:18;;11971:31:0::1;15820:330:1::0;11971:31:0::1;12031:2;12021:6;:12;;12013:33;;;::::0;-1:-1:-1;;;12013:33:0;;17446:2:1;12013:33:0::1;::::0;::::1;17428:21:1::0;17485:1;17465:18;;;17458:29;17523:10;17503:18;;;17496:38;17551:18;;12013:33:0::1;17244:331:1::0;12013:33:0::1;12054:5;:14:::0;;;12084:30:::1;::::0;;12717:21:1;;;12754:18;;;12747:29;;;;12812:7;12807:2;12792:18;;12785:35;12887:4;12872:20;;12865:36;;;12084:30:0::1;::::0;12852:3:1;12837:19;12084:30:0::1;12505:402:1::0;15935:1236:0;15991:4;15996;16001;16006:32;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16006:32:0;16039:13;16054:46;16102:16;;:::i;:::-;16130:24;16157:8;;:36;;;;;-1:-1:-1;;;;;7960:55:1;;;16157:36:0;;;7942:74:1;16157:8:0;;;;:27;;7915:18:1;;16157:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16157:36:0;;;;;;;;;;;;:::i;:::-;16130:63;;16206:60;16313:10;:17;16269:62;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;16206:125;;16346:6;16342:137;16362:10;:17;16358:1;:21;16342:137;;;16419:8;;16453:13;;-1:-1:-1;;;;;16419:8:0;;;;:33;;16453:10;;16464:1;;16453:13;;;;;;:::i;:::-;;;;;;;16419:48;;;;;;;;;;;;;18404:25:1;;18392:2;18377:18;;18258:177;16419:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16400:13;16414:1;16400:16;;;;;;;;:::i;:::-;;;;;;:67;;;;16381:3;;;;;:::i;:::-;;;;16342:137;;;;16491:23;;:::i;:::-;16529:6;16525:303;16545:1;16541;:5;16525:303;;;16567:14;16584:8;;:16;;-1:-1:-1;;;16584:16:0;;;;;18404:25:1;;;-1:-1:-1;;;;;16584:8:0;;;;:13;;18377:18:1;;16584:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:35;;-1:-1:-1;;;16584:35:0;;-1:-1:-1;;;;;7960:55:1;;;16584:35:0;;;7942:74:1;16584:26:0;;;;;;;7915:18:1;;16584:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16567:52;;16657:9;16646:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16646:21:0;;16634:6;16641:1;16634:9;;;;;;;:::i;:::-;;;;:33;16686:6;16682:135;16702:9;16698:1;:13;16682:135;;;16752:8;;:16;;-1:-1:-1;;;16752:16:0;;;;;18404:25:1;;;-1:-1:-1;;;;;16752:8:0;;;;:13;;18377:18:1;;16752:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16752:36:0;;16789:7;16798:1;16752:48;;;;;;;;;;;;;;;-1:-1:-1;;;;;9501:55:1;;;;9483:74;;9588:2;9573:18;;9566:34;9471:2;9456:18;;9309:297;16752:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16737:6;16744:1;16737:9;;;;;;;:::i;:::-;;;;;16747:1;16737:12;;;;;;;;:::i;:::-;;;;;;;;;;:63;16713:3;;;;:::i;:::-;;;;16682:135;;;;16552:276;16548:3;;;;;:::i;:::-;;;;16525:303;;;;16862:8;;;;;;;;-1:-1:-1;;;;;16862:8:0;-1:-1:-1;;;;;16862:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16904:8;;16862:52;;;;;-1:-1:-1;;;;;8280:15:1;;;16862:52:0;;;8262:34:1;16904:8:0;;;8312:18:1;;;8305:43;16862:24:0;;;;;8174:18:1;;16862:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16929:8;;;;;;;;-1:-1:-1;;;;;16929:8:0;-1:-1:-1;;;;;16929:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;;-1:-1:-1;;;16929:33:0;;-1:-1:-1;;;;;7960:55:1;;;16929:33:0;;;7942:74:1;16929:24:0;;;;;;;7915:18:1;;16929:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16977:8;;;;;;;;-1:-1:-1;;;;;16977:8:0;-1:-1:-1;;;;;16977:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16977:31:0;;17009:7;17026:8;;;;;;;;-1:-1:-1;;;;;17026:8:0;16977:59;;;;;;;;;;;;;;;-1:-1:-1;;;;;8280:15:1;;;8262:34;;8332:15;;8327:2;8312:18;;8305:43;8189:2;8174:18;;8027:327;16977:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17051:8;;;;;;;;-1:-1:-1;;;;;17051:8:0;-1:-1:-1;;;;;17051:16:0;;17068:7;17051:25;;;;;;;;;;;;;;-1:-1:-1;;;;;7960:55:1;;;;7942:74;;7930:2;7915:18;;7796:226;17051:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16840:323;;;;-1:-1:-1;16840:323:0;-1:-1:-1;16840:323:0;;-1:-1:-1;17091:10:0;;-1:-1:-1;17117:13:0;;-1:-1:-1;17091:10:0;-1:-1:-1;15935:1236:0;-1:-1:-1;;15935:1236:0:o;11405:232::-;10940:8;;;;;;;;-1:-1:-1;;;;;10940:8:0;-1:-1:-1;;;;;10940:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10926:28:0;:10;-1:-1:-1;;;;;10926:28:0;;10918:49;;;;-1:-1:-1;;;10918:49:0;;17110:2:1;10918:49:0;;;17092:21:1;17149:1;17129:18;;;17122:29;-1:-1:-1;;;17167:18:1;;;17160:38;17215:18;;10918:49:0;16908:331:1;10918:49:0;11508:3:::1;11489:15;:22;;11481:44;;;::::0;-1:-1:-1;;;11481:44:0;;15685:2:1;11481:44:0::1;::::0;::::1;15667:21:1::0;15724:1;15704:18;;;15697:29;15762:11;15742:18;;;15735:39;15791:18;;11481:44:0::1;15483:332:1::0;11481:44:0::1;11533:14;:32:::0;;;11581:48:::1;::::0;;16703:21:1;;;16760:2;16740:18;;;16733:30;;;;16799:16;16794:2;16779:18;;16772:44;16883:4;16868:20;;16861:36;;;11581:48:0::1;::::0;16848:3:1;16833:19;11581:48:0::1;16491:412:1::0;15021:147:0;15062:4;15114:46;15127:17;;15146:13;;15114:12;:46::i;:::-;15101:10;;:59;;;;:::i;:::-;15085:12;:75;;15078:82;;15021:147;:::o;15434:220::-;15490:4;15528:8;;:26;;;;;;;;15490:4;;-1:-1:-1;;;;;15528:8:0;;:24;;:26;;;;;;;;;;;;;;:8;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15528:45:0;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15506:69;-1:-1:-1;15506:69:0;;-1:-1:-1;15617:17:0;9190:3;15617:7;:17;:::i;:::-;:28;;;;:::i;:::-;15607:38;;9190:3;15607:38;:::i;:::-;15593:12;15604:1;9190:3;15593:12;:::i;:::-;:53;;;;:::i;:::-;15586:60;15434:220;-1:-1:-1;;;15434:220:0:o;15660:235::-;15759:16;;;15773:1;15759:16;;;15707;15759;;;;;15707;15735:21;;15759:16;15773:1;15759:16;;;;;;;;;;-1:-1:-1;15759:16:0;15735:40;;15804:8;;;;;;;;-1:-1:-1;;;;;15804:8:0;-1:-1:-1;;;;;15804:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15786:4;15791:1;15786:7;;;;;;;;:::i;:::-;;;;;;:35;-1:-1:-1;;;;;15786:35:0;;;-1:-1:-1;;;;;15786:35:0;;;;;15850:8;;;;;;;;-1:-1:-1;;;;;15850:8:0;-1:-1:-1;;;;;15850:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15832:4;15837:1;15832:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15832:33:0;;;:7;;;;;;;;;;;:33;15883:4;15660:235;-1:-1:-1;15660:235:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:138:1:-;93:13;;115:31;93:13;115:31;:::i;:::-;14:138;;;:::o;157:164::-;233:13;;282;;275:21;265:32;;255:60;;311:1;308;301:12;326:247;385:6;438:2;426:9;417:7;413:23;409:32;406:52;;;454:1;451;444:12;406:52;493:9;480:23;512:31;537:5;512:31;:::i;578:251::-;648:6;701:2;689:9;680:7;676:23;672:32;669:52;;;717:1;714;707:12;669:52;749:9;743:16;768:31;793:5;768:31;:::i;834:315::-;902:6;910;963:2;951:9;942:7;938:23;934:32;931:52;;;979:1;976;969:12;931:52;1018:9;1005:23;1037:31;1062:5;1037:31;:::i;:::-;1087:5;1139:2;1124:18;;;;1111:32;;-1:-1:-1;;;834:315:1:o;1154:947::-;1249:6;1280:2;1323;1311:9;1302:7;1298:23;1294:32;1291:52;;;1339:1;1336;1329:12;1291:52;1372:9;1366:16;1401:18;1442:2;1434:6;1431:14;1428:34;;;1458:1;1455;1448:12;1428:34;1496:6;1485:9;1481:22;1471:32;;1541:7;1534:4;1530:2;1526:13;1522:27;1512:55;;1563:1;1560;1553:12;1512:55;1592:2;1586:9;1614:2;1610;1607:10;1604:36;;;1620:18;;:::i;:::-;1666:2;1663:1;1659:10;1649:20;;1689:28;1713:2;1709;1705:11;1689:28;:::i;:::-;1751:15;;;1782:12;;;;1814:11;;;1844;;;1840:20;;1837:33;-1:-1:-1;1834:53:1;;;1883:1;1880;1873:12;1834:53;1905:1;1896:10;;1915:156;1929:2;1926:1;1923:9;1915:156;;;1986:10;;1974:23;;1947:1;1940:9;;;;;2017:12;;;;2049;;1915:156;;;-1:-1:-1;2090:5:1;1154:947;-1:-1:-1;;;;;;;;1154:947:1:o;2106:202::-;2173:6;2226:2;2214:9;2205:7;2201:23;2197:32;2194:52;;;2242:1;2239;2232:12;2194:52;2265:37;2292:9;2265:37;:::i;3721:1393::-;3826:6;3870:9;3861:7;3857:23;3900:3;3896:2;3892:12;3889:32;;;3917:1;3914;3907:12;3889:32;3943:22;;:::i;:::-;3984:6;4010:2;4006;4002:11;3999:31;;;4026:1;4023;4016:12;3999:31;4054:22;;:::i;:::-;4039:37;;4101:40;4131:9;4101:40;:::i;:::-;4092:7;4085:57;4197:2;4186:9;4182:18;4176:25;4171:2;4162:7;4158:16;4151:51;4257:2;4246:9;4242:18;4236:25;4231:2;4222:7;4218:16;4211:51;4317:2;4306:9;4302:18;4296:25;4291:2;4282:7;4278:16;4271:51;4378:3;4367:9;4363:19;4357:26;4351:3;4342:7;4338:17;4331:53;4440:3;4429:9;4425:19;4419:26;4413:3;4404:7;4400:17;4393:53;4482:48;4524:4;4513:9;4509:20;4482:48;:::i;:::-;4475:4;4462:18;;4455:76;4587:3;4572:19;;;4566:26;4547:17;;;4540:53;4612:3;4655:18;;;4649:25;4631:16;;;4624:51;4694:3;4737:18;;;4731:25;4713:16;;;4706:51;4766:22;;;4826:18;;;4820:25;4815:2;4804:14;;4797:49;4899:3;4884:19;;4878:26;4873:2;4862:14;;4855:50;4958:3;4943:19;;4937:26;4932:2;4921:14;;4914:50;5018:3;5003:19;;4997:26;4991:3;4980:15;;4973:51;5078:3;5063:19;;;5057:26;5051:3;5040:15;;5033:51;-1:-1:-1;4773:5:1;3721:1393;-1:-1:-1;3721:1393:1:o;5119:625::-;5212:6;5265:2;5253:9;5244:7;5240:23;5236:32;5233:52;;;5281:1;5278;5271:12;5233:52;5314:2;5308:9;5356:2;5348:6;5344:15;5425:6;5413:10;5410:22;5389:18;5377:10;5374:34;5371:62;5368:88;;;5436:18;;:::i;:::-;5472:2;5465:22;5511:16;;5496:32;;5571:2;5556:18;;5550:25;5584:31;5550:25;5584:31;:::i;:::-;5643:2;5631:15;;5624:30;5708:2;5693:18;;;5687:25;5670:15;;;5663:50;;;;-1:-1:-1;5635:6:1;5119:625;-1:-1:-1;5119:625:1:o;5749:180::-;5808:6;5861:2;5849:9;5840:7;5836:23;5832:32;5829:52;;;5877:1;5874;5867:12;5829:52;-1:-1:-1;5900:23:1;;5749:180;-1:-1:-1;5749:180:1:o;5934:184::-;6004:6;6057:2;6045:9;6036:7;6032:23;6028:32;6025:52;;;6073:1;6070;6063:12;6025:52;-1:-1:-1;6096:16:1;;5934:184;-1:-1:-1;5934:184:1:o;6123:248::-;6191:6;6199;6252:2;6240:9;6231:7;6227:23;6223:32;6220:52;;;6268:1;6265;6258:12;6220:52;-1:-1:-1;;6291:23:1;;;6361:2;6346:18;;;6333:32;;-1:-1:-1;6123:248:1:o;6376:245::-;6455:6;6463;6516:2;6504:9;6495:7;6491:23;6487:32;6484:52;;;6532:1;6529;6522:12;6484:52;-1:-1:-1;;6555:16:1;;6611:2;6596:18;;;6590:25;6555:16;;6590:25;;-1:-1:-1;6376:245:1:o;6758:497::-;6817:3;6848;6902;6895:5;6891:15;6929:5;6952:1;6962:267;6976:4;6973:1;6970:11;6962:267;;;7045:5;7039:4;7035:16;7030:3;7023:29;7073:49;7117:4;7108:6;7102:13;7073:49;:::i;:::-;7145:4;7207:12;;;;7065:57;;-1:-1:-1;7172:15:1;;;;;6996:1;6989:9;6962:267;;;-1:-1:-1;7245:4:1;;6758:497;-1:-1:-1;;;;;6758:497:1:o;7260:435::-;7313:3;7351:5;7345:12;7378:6;7373:3;7366:19;7404:4;7433:2;7428:3;7424:12;7417:19;;7470:2;7463:5;7459:14;7491:1;7501:169;7515:6;7512:1;7509:13;7501:169;;;7576:13;;7564:26;;7610:12;;;;7645:15;;;;7537:1;7530:9;7501:169;;;-1:-1:-1;7686:3:1;;7260:435;-1:-1:-1;;;;;7260:435:1:o;18440:1026::-;18702:4;18750:3;18739:9;18735:19;18781:6;18770:9;18763:25;18807:2;18845:6;18840:2;18829:9;18825:18;18818:34;18888:3;18883:2;18872:9;18868:18;18861:31;18912:6;18947;18941:13;18978:6;18970;18963:22;19016:3;19005:9;19001:19;18994:26;;19055:2;19047:6;19043:15;19029:29;;19076:1;19086:218;19100:6;19097:1;19094:13;19086:218;;;19165:13;;-1:-1:-1;;;;;19161:62:1;19149:75;;19279:15;;;;19244:12;;;;19122:1;19115:9;19086:218;;;-1:-1:-1;;;;;;;19360:55:1;;;;19355:2;19340:18;;19333:83;-1:-1:-1;;;19447:3:1;19432:19;19425:35;19321:3;18440:1026;-1:-1:-1;;;18440:1026:1:o;19471:2770::-;20043:4;20072:3;20102:6;20091:9;20084:25;20128:2;20166:6;20161:2;20150:9;20146:18;20139:34;20192:2;20230:6;20225:2;20214:9;20210:18;20203:34;20256:2;20300:6;20294:13;20289:2;20278:9;20274:18;20267:41;20355:2;20347:6;20343:15;20337:22;20378:3;-1:-1:-1;;;;;20421:12:1;20417:61;20412:2;20401:9;20397:18;20390:89;20516:2;20508:6;20504:15;20498:22;20488:32;;20539:3;20578:2;20573;20562:9;20558:18;20551:30;20600:3;20590:13;;20639:2;20634;20623:9;20619:18;20612:30;20665:56;20717:2;20706:9;20702:18;20694:6;20665:56;:::i;:::-;20779:22;;;20740:3;20759:18;;;20752:50;;;;20851:13;;20873:22;;;20949:15;;;;20911;;;20982:1;20992:1119;21006:6;21003:1;21000:13;20992:1119;;;21066:13;;21103:10;;21145;;-1:-1:-1;;;;;6692:54:1;6680:67;;21201:12;;;21195:19;21181:12;;;21174:41;21255:12;;;21249:19;21235:12;;;21228:41;21309:12;;;21303:19;21289:12;;;21282:41;21363:12;;;21357:19;21343:12;;;21336:41;21417:12;;;21411:19;21397:12;;;21390:41;21472:12;;;21466:19;7770:13;7763:21;21530:12;;;7751:34;21583:12;;;21577:19;21563:12;;;21556:41;21621:6;21668:13;;;21662:20;21647:13;;;21640:43;21723:12;;21717:19;21703:12;;;21696:41;21781:12;;;21775:19;21766:6;21757:16;;21750:45;21839:12;;;21833:19;21824:6;21815:16;;21808:45;21897:12;;;21891:19;21882:6;21873:16;;21866:45;21955:12;;;21949:19;21940:6;21931:16;;21924:45;22013:12;;22007:19;21998:6;21989:16;;21982:45;22086:15;;;;22056:6;22047:16;;;;21028:1;21021:9;20992:1119;;;20996:3;;22160:9;22155:3;22151:19;22142:6;22131:9;22127:22;22120:51;22188:47;22231:3;22223:6;22188:47;:::i;:::-;22180:55;;;;;;;;;;;;19471:2770;;;;;;;;;;:::o;22246:253::-;22318:2;22312:9;22360:4;22348:17;;22395:18;22380:34;;22416:22;;;22377:62;22374:88;;;22442:18;;:::i;:::-;22478:2;22471:22;22246:253;:::o;22504:255::-;22576:2;22570:9;22618:6;22606:19;;22655:18;22640:34;;22676:22;;;22637:62;22634:88;;;22702:18;;:::i;22764:275::-;22835:2;22829:9;22900:2;22881:13;;-1:-1:-1;;22877:27:1;22865:40;;22935:18;22920:34;;22956:22;;;22917:62;22914:88;;;22982:18;;:::i;:::-;23018:2;23011:22;22764:275;;-1:-1:-1;22764:275:1:o;23044:128::-;23084:3;23115:1;23111:6;23108:1;23105:13;23102:39;;;23121:18;;:::i;:::-;-1:-1:-1;23157:9:1;;23044:128::o;23177:274::-;23217:1;23243;23233:189;;-1:-1:-1;;;23275:1:1;23268:88;23379:4;23376:1;23369:15;23407:4;23404:1;23397:15;23233:189;-1:-1:-1;23436:9:1;;23177:274::o;23456:422::-;23545:1;23588:5;23545:1;23602:270;23623:7;23613:8;23610:21;23602:270;;;23682:4;23678:1;23674:6;23670:17;23664:4;23661:27;23658:53;;;23691:18;;:::i;:::-;23741:7;23731:8;23727:22;23724:55;;;23761:16;;;;23724:55;23840:22;;;;23800:15;;;;23602:270;;;23606:3;23456:422;;;;;:::o;23883:131::-;23943:5;23972:36;23999:8;23993:4;23972:36;:::i;24019:140::-;24077:5;24106:47;24147:4;24137:8;24133:19;24127:4;24164:806;24213:5;24243:8;24233:80;;-1:-1:-1;24284:1:1;24298:5;;24233:80;24332:4;24322:76;;-1:-1:-1;24369:1:1;24383:5;;24322:76;24414:4;24432:1;24427:59;;;;24500:1;24495:130;;;;24407:218;;24427:59;24457:1;24448:10;;24471:5;;;24495:130;24532:3;24522:8;24519:17;24516:43;;;24539:18;;:::i;:::-;-1:-1:-1;;24595:1:1;24581:16;;24610:5;;24407:218;;24709:2;24699:8;24696:16;24690:3;24684:4;24681:13;24677:36;24671:2;24661:8;24658:16;24653:2;24647:4;24644:12;24640:35;24637:77;24634:159;;;-1:-1:-1;24746:19:1;;;24778:5;;24634:159;24825:34;24850:8;24844:4;24825:34;:::i;:::-;24895:6;24891:1;24887:6;24883:19;24874:7;24871:32;24868:58;;;24906:18;;:::i;:::-;24944:20;;24164:806;-1:-1:-1;;;24164:806:1:o;24975:168::-;25015:7;25081:1;25077;25073:6;25069:14;25066:1;25063:21;25058:1;25051:9;25044:17;25040:45;25037:71;;;25088:18;;:::i;:::-;-1:-1:-1;25128:9:1;;24975:168::o;25148:125::-;25188:4;25216:1;25213;25210:8;25207:34;;;25221:18;;:::i;:::-;-1:-1:-1;25258:9:1;;25148:125::o;25278:135::-;25317:3;-1:-1:-1;;25338:17:1;;25335:43;;;25358:18;;:::i;:::-;-1:-1:-1;25405:1:1;25394:13;;25278:135::o;25418:184::-;-1:-1:-1;;;25467:1:1;25460:88;25567:4;25564:1;25557:15;25591:4;25588:1;25581:15;25607:184;-1:-1:-1;;;25656:1:1;25649:88;25756:4;25753:1;25746:15;25780:4;25777:1;25770:15;25796:184;-1:-1:-1;;;25845:1:1;25838:88;25945:4;25942:1;25935:15;25969:4;25966:1;25959:15;25985:154;-1:-1:-1;;;;;26064:5:1;26060:54;26053:5;26050:65;26040:93;;26129:1;26126;26119:12;26040:93;25985:154;:::o

Swarm Source

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