Contract 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec7

 

Contract Overview

Balance:
0.2 BNB

BNB Value:
$123.45 (@ $617.26/BNB)

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x70a7aab4c50b4baf78d95b7be0e3db797de02800a9f55030823dc0325eec68d1Approve129869292021-11-27 3:39:152 days 11 hrs ago0x2b9571885c40b537c4dde709e43667ad9ce5bb17 IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.0002219
0x67cc483bf8547d4e0845a6c4cdbc406e64399972dd4d62e69cf8d255f047ab35Approve126693682021-11-15 12:32:2614 days 2 hrs ago0x043db64124301daebaa5e2c2c8f842666353c96f IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.0002219
0xc26b3d6011c1e271a13d4b861722288af6e29cc64fc11cd2f3de9a0f785e77f5Approve126341982021-11-14 5:49:5615 days 9 hrs ago0x9ce7203f65e172bf2971207a0be6a109082e3aff IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.0002219
0x34713f8b702ae9c533e7817ae244b58f615f39748e57b41b64ced30605aa03d8Approve125969362021-11-12 22:09:5216 days 16 hrs ago0xdc7aabaf4b1922313209f06e5f19feae15299870 IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.00007249
0xb7a37e7ef273156568c3ed2dd0f1ad180885621a69eaf1cd194c62e88b8dd080Approve124461582021-11-07 13:16:1322 days 1 hr ago0x633fc19b8813249587f65553b6b14e32e9ea8778 IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.0002219
0x8818dbd9ab673f2ed8798fd63b4401d96d99686a7aea64f918e2522b5a6cdbb0Approve123961172021-11-05 19:14:4023 days 19 hrs ago0x16fb26dd203a29bf779e249d66ac142f10bb228e IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.0002219
0x58b818a9b87ceb953d5a851ebf6df660d85b25c5b978e2bfaa4b681fed207c6bApprove123918012021-11-05 15:35:0823 days 23 hrs ago0x00668e028ff85feebdfbdb66122e0f10f889c134 IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.0002219
0x486d8d68b5b1a66ff49724f08e92f9fc47ec10bcf96af8ed16941772c1ffc868Approve123678832021-11-04 19:21:3524 days 19 hrs ago0x4403710c79b4db04715469500f1cfea2c3bc3461 IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.0001259
0x59a8eb4f001ccab4f1dc79471fe5ba93d2957bb6dab0f30a8253c7cf5c005e29Approve123678802021-11-04 19:21:2624 days 19 hrs ago0x4403710c79b4db04715469500f1cfea2c3bc3461 IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.0002219
0x26f12da2c2ec11cd64fe7ce79dbb0bc3aaad33952179104eacfa8de7890d3969Approve123449272021-11-03 23:25:4125 days 15 hrs ago0x033c2fdeb9d2ca226a0fb272e29aa669da11055a IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.00026628
0xe0f056b2f22eccce0c09d9f634572de68faacf0b2cf9e7ac2ea86293f759e697Approve123192682021-11-03 0:58:2826 days 14 hrs ago0x1b4698e7a35849c5d6d0adb070b020d72e949c2c IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.0002219
0x139efdba5c56784f91f850fdf563fd3c98b4bd992f23d772a09f608c20a51eb6Approve123146792021-11-02 21:06:1426 days 18 hrs ago0x4a0a4ef11421692e507ac283bc5b1710e9edc5b2 IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.0002219
0x5df3e2fe67169bbf9e1f8008c8d87a6de1a6e48beb8d12cda4aa75aff3fadd72Approve123045842021-11-02 12:20:1327 days 2 hrs ago0x3ce3774bcde0bae2ba7ed03c2b227c69bb620ba1 IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.0002219
0xccc1f87dedf049670b9a6962bbc02c1e86c5aa9c7c9f3fe20facc48c1c94c8fdApprove122742692021-11-01 10:27:0128 days 4 hrs ago0x64963722ad8cca1e72e4b306406087f429a89c0d IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.0002219
0x10839ebc03269fb3874a7bceb0db1dcab594c646c3ccf2f036109e8741bf3713Approve121846542021-10-29 6:10:3931 days 8 hrs ago0x41dc9ffd0a1a792a36a54852bcacdfd23e7a9571 IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.0002219
0x8a8a6d98dfe0f8ee7f1a8ee54b46eb6f5ad9d25a756cb94fc6e5ab2bbfd0b2ffSet Is Fee Exemp...121846482021-10-29 6:10:2131 days 8 hrs ago0xeee8bc460f33c90dca209b1bccd346bbb2112ef7 IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.000219105
0x70e6084876c695ad68a09e1216e7ff57bb6718317688e6ddea60e561c82e8985Approve121714552021-10-28 19:07:1331 days 20 hrs ago0x40cc8601b5b2b48933ab83601358e4319cfa5bd7 IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.0002219
0x1cb5612b0d7fee1add3190b0b929acabb049676bbb7c3f0cf570ad6265ed2487Approve121556772021-10-28 5:39:4332 days 9 hrs ago0x0deecaaf8672661671a8890fa5ffdd7c5a9adc49 IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.0002219
0xc0875b5819666811370529ecbae69cc49a1741efdc7fa3b0c8cd02887cbe39c0Approve121555332021-10-28 5:32:3132 days 9 hrs ago0x5d1dd209fe44772f53bd06ac2298e732d0e39926 IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.0002219
0x8db165d7c2d3a0234ad4eb60fe039a99bad88817764b25bf1021f79537479c51Approve121096222021-10-26 14:44:1934 days 23 mins ago0xbd40084488364ee77a993ff0bba6292132064ab7 IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.0002219
0xef6c286dcdfeea81db6d8850ad1f93b4520dfbbbd0b3a6922a6b64e99b2cba9bApprove121069962021-10-26 12:31:1434 days 2 hrs ago0xc84cec6f86db693dd43436a81b2156e4a810bab6 IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.00007249
0xdeda4bc462e371dddc04d84612bbe9e06feff874c84552d6915f9fa9db4a3e3dApprove120866412021-10-25 19:30:2134 days 19 hrs ago0x303b8395315343543cf039d23eb5a9f1e6ca2c5e IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.00031066
0x3194a5968fb371269b86f686eb0d84aa3d3e0b6aa9fc8b36377b17ce645987ddTransfer120441622021-10-24 7:38:1336 days 7 hrs ago0x816c27288b4197c08e736c4cc16b5d8bf3485ec7 IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.00293935
0x7c763c8f44c868d45e29b005f73610ff805d66e311514a023cc8103d34dc4392Approve120135762021-10-23 6:01:2537 days 9 hrs ago0xbd36835af1c48d6c11f2939946c7c642f347fbe4 IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.0002219
0x5ed9f680ed8726adc63e32ed6cfe780543687d69c7b513716bfbe959f2c0d814Approve120132622021-10-23 5:45:3737 days 9 hrs ago0x2fa73b702932ceea632f63f125aa6da276d02d36 IN  0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70 BNB0.0002219
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x73b724a5f45e14b16d77878fc5287d045ffd0afdad68dd4b7bca0cc24d31602a115344032021-10-06 10:40:3754 days 4 hrs ago 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70xfc877a0753442d7c136a6dc63a1b7a72ca0b540d0.11758866086272776 BNB
0xd6b16d2d397f4f11fc9ec49bb537e32b4ffd722e7942906320f2f5c5885b5248115343902021-10-06 10:39:5854 days 4 hrs ago 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70xfc877a0753442d7c136a6dc63a1b7a72ca0b540d0.013065406762525306 BNB
0x236bf0169ef44d3d261e8c04f6e1aca553d2714dc3a597b37eabeb7d8f79b663115343732021-10-06 10:39:0754 days 4 hrs ago 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70xfc877a0753442d7c136a6dc63a1b7a72ca0b540d0.014517118625028118 BNB
0x26134e784046b078be3913944e5731870754528e30016890f8b14b43e0b0de38115064592021-10-05 11:21:3055 days 3 hrs ago PancakeSwap: Router v2 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70.003541314948679493 BNB
0x26134e784046b078be3913944e5731870754528e30016890f8b14b43e0b0de38115064592021-10-05 11:21:3055 days 3 hrs ago 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec7 PancakeSwap: Router v20.050889056386669429 BNB
0x26134e784046b078be3913944e5731870754528e30016890f8b14b43e0b0de38115064592021-10-05 11:21:3055 days 3 hrs ago 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70xa16b606f472ffbadfecb23f9042c5bf3643b06750.101778112773338859 BNB
0x26134e784046b078be3913944e5731870754528e30016890f8b14b43e0b0de38115064592021-10-05 11:21:3055 days 3 hrs ago 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70xfc877a0753442d7c136a6dc63a1b7a72ca0b540d0.203556225546677719 BNB
0x26134e784046b078be3913944e5731870754528e30016890f8b14b43e0b0de38115064592021-10-05 11:21:3055 days 3 hrs ago 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec7 0x21e6ac495bab635e8c3a30a0828f102052fd26e10.356223394706686009 BNB
0x26134e784046b078be3913944e5731870754528e30016890f8b14b43e0b0de38115064592021-10-05 11:21:3055 days 3 hrs ago PancakeSwap: Router v2 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70.712446789413372019 BNB
0x5afca17a2a004976d3a18588c985b237844c56de3210d8b7fcec79dacabaeb05115048542021-10-05 10:01:1555 days 5 hrs ago PancakeSwap: Router v2 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70.009862921385836956 BNB
0x5afca17a2a004976d3a18588c985b237844c56de3210d8b7fcec79dacabaeb05115048542021-10-05 10:01:1555 days 5 hrs ago 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec7 PancakeSwap: Router v20.100553105246091233 BNB
0x5afca17a2a004976d3a18588c985b237844c56de3210d8b7fcec79dacabaeb05115048542021-10-05 10:01:1555 days 5 hrs ago 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70xa16b606f472ffbadfecb23f9042c5bf3643b06750.201106210492182467 BNB
0x5afca17a2a004976d3a18588c985b237844c56de3210d8b7fcec79dacabaeb05115048542021-10-05 10:01:1555 days 5 hrs ago 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70xfc877a0753442d7c136a6dc63a1b7a72ca0b540d0.402212420984364935 BNB
0x5afca17a2a004976d3a18588c985b237844c56de3210d8b7fcec79dacabaeb05115048542021-10-05 10:01:1555 days 5 hrs ago 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec7 0x21e6ac495bab635e8c3a30a0828f102052fd26e10.703871736722638637 BNB
0x5afca17a2a004976d3a18588c985b237844c56de3210d8b7fcec79dacabaeb05115048542021-10-05 10:01:1555 days 5 hrs ago PancakeSwap: Router v2 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec71.407743473445277274 BNB
0xa639d529749266f57afc22e340ba037a541dc951b4ad06491c12204589d8eb2d115045292021-10-05 9:45:0055 days 5 hrs ago PancakeSwap: Router v2 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70.005448625172905859 BNB
0xa639d529749266f57afc22e340ba037a541dc951b4ad06491c12204589d8eb2d115045292021-10-05 9:45:0055 days 5 hrs ago 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec7 PancakeSwap: Router v20.067216342111371357 BNB
0xa639d529749266f57afc22e340ba037a541dc951b4ad06491c12204589d8eb2d115045292021-10-05 9:45:0055 days 5 hrs ago 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70xa16b606f472ffbadfecb23f9042c5bf3643b06750.134432684222742714 BNB
0xa639d529749266f57afc22e340ba037a541dc951b4ad06491c12204589d8eb2d115045292021-10-05 9:45:0055 days 5 hrs ago 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70xfc877a0753442d7c136a6dc63a1b7a72ca0b540d0.268865368445485429 BNB
0xa639d529749266f57afc22e340ba037a541dc951b4ad06491c12204589d8eb2d115045292021-10-05 9:45:0055 days 5 hrs ago 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec7 0x21e6ac495bab635e8c3a30a0828f102052fd26e10.470514394779599502 BNB
0xa639d529749266f57afc22e340ba037a541dc951b4ad06491c12204589d8eb2d115045292021-10-05 9:45:0055 days 5 hrs ago PancakeSwap: Router v2 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70.941028789559199004 BNB
0x2433fe801d9112632f211ee265759395956233a667d42d5636e509004013f29c115044422021-10-05 9:40:3955 days 5 hrs ago PancakeSwap: Router v2 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70.005224837844011972 BNB
0x2433fe801d9112632f211ee265759395956233a667d42d5636e509004013f29c115044422021-10-05 9:40:3955 days 5 hrs ago 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec7 PancakeSwap: Router v20.065086319723891847 BNB
0x2433fe801d9112632f211ee265759395956233a667d42d5636e509004013f29c115044422021-10-05 9:40:3955 days 5 hrs ago 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70xa16b606f472ffbadfecb23f9042c5bf3643b06750.130172639447783694 BNB
0x2433fe801d9112632f211ee265759395956233a667d42d5636e509004013f29c115044422021-10-05 9:40:3955 days 5 hrs ago 0xe3aab295c8a4687616b7b9115b6cfb19b0e56ec70xfc877a0753442d7c136a6dc63a1b7a72ca0b540d0.260345278895567388 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ForeverGoUp

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-10-02
*/

// SPDX-License-Identifier: unlicensed


pragma solidity ^0.7.4;

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

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

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

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

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;
    int256 private constant MAX_INT256 = ~(int256(1) << 255);

    function mul(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a * b;

        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }

    function div(int256 a, int256 b) internal pure returns (int256) {
        require(b != -1 || a != MIN_INT256);

        return a / b;
    }

    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }

    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }

    function abs(int256 a) internal pure returns (int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }
}

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

abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface InterfaceLP {
    function sync() external;
}

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

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

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

interface IDividendDistributor {
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address _token;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised;
    }

    IBEP20 RWRD = IBEP20(0x2170Ed0880ac9A755fd29B2688956BD959F933F8);
    address WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    IDEXRouter router;

    address[] shareholders;
    mapping (address => uint256) shareholderIndexes;
    mapping (address => uint256) shareholderClaims;

    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalDistributed;
    uint256 public dividendsPerShare;
    uint256 public dividendsPerShareAccuracyFactor = 10 ** 36;

    uint256 public minPeriod = 45 * 60;
    uint256 public minDistribution = 1 * (10 ** 12);

    uint256 currentIndex;

    bool initialized;
    modifier initialization() {
        require(!initialized);
        _;
        initialized = true;
    }

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }

    constructor (address _router) {
        router = _router != address(0)
            ? IDEXRouter(_router)
            : IDEXRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        _token = msg.sender;
    }

    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external override onlyToken {
        minPeriod = _minPeriod;
        minDistribution = _minDistribution;
    }

    function setShare(address shareholder, uint256 amount) external override onlyToken {
        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit() external payable override onlyToken {
        uint256 balanceBefore = RWRD.balanceOf(address(this));

        address[] memory path = new address[](2);
        path[0] = WBNB;
        path[1] = address(RWRD);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amount = RWRD.balanceOf(address(this)).sub(balanceBefore);

        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }

    function process(uint256 gas) external override onlyToken {
        uint256 shareholderCount = shareholders.length;

        if(shareholderCount == 0) { return; }

        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft();

        uint256 iterations = 0;

        while(gasUsed < gas && iterations < shareholderCount) {
            if(currentIndex >= shareholderCount){
                currentIndex = 0;
            }

            if(shouldDistribute(shareholders[currentIndex])){
                distributeDividend(shareholders[currentIndex]);
            }

            gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }
    
    function shouldDistribute(address shareholder) internal view returns (bool) {
        return shareholderClaims[shareholder] + minPeriod < block.timestamp
                && getUnpaidEarnings(shareholder) > minDistribution;
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount > 0){
            totalDistributed = totalDistributed.add(amount);
            RWRD.transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }
    
    function claimDividend() external {
        distributeDividend(msg.sender);
    }

    function getUnpaidEarnings(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
}

contract ForeverGoUp is IBEP20, Auth {
    using SafeMath for uint256;
    using SafeMathInt for int256;

    address WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "ForeverGoUp";
    string constant _symbol = "$ForeverUP";
    uint8 constant _decimals = 6;


    //mapping (address => uint256) _balances;
    mapping (address => uint256) _rBalance;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isTimelockExempt;
    mapping (address => bool) public isDividendExempt;

    uint256 public liquidityFee    = 2;
    uint256 public reflectionFee   = 7;
    uint256 public marketingFee    = 4;
    uint256 public devFee          = 2;
    uint256 public totalFee        = marketingFee + reflectionFee + liquidityFee + devFee;
    uint256 public feeDenominator  = 100;

    // Anti-Bot v2
    uint256 public maxRoomRent = 8000000000;
    bool public hotelCaliforniaMode = false;
    mapping (address => bool) public isHouseguest;

    uint256 public deadBlocks = 2;
    uint256 public launchedAt = 0;

    uint256 public sellMultiplier  = 100;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address public devFeeReceiver;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;
    InterfaceLP public pairContract; 

    bool public tradingOpen = false;

    DividendDistributor public distributor;
    uint256 distributorGas = 500000;

    bool public buyCooldownEnabled = false;
    uint8 public cooldownTimerInterval = 5;
    mapping (address => uint) private cooldownTimer;

    bool public swapEnabled = false;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    address public master;
    modifier onlyMaster() {
        require(msg.sender == master || isOwner(msg.sender));
        _;
    }

    event LogRebase(uint256 indexed epoch, uint256 totalSupply);
    event CaliforniaCheckin(address guest, uint256 rentPaid);

    uint256 private constant INITIAL_FRAGMENTS_SUPPLY = 10**15 * 10**_decimals;
    uint256 public swapThreshold = rSupply * 10 / 10000;
    uint256 public rebase_count = 0;
    uint256 public rate;
    uint256 public _totalSupply;
    uint256 private constant MAX_UINT256 = ~uint256(0);
    uint256 private constant MAX_SUPPLY = ~uint128(0);
    uint256 private constant rSupply = MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY);

    // Max wallet & Transaction
    uint256 public _maxTxAmount = rSupply.div(100).mul(2);
    uint256 public _maxWalletToken = rSupply.div(100).mul(3);

    function rebase_percentage(uint256 _percentage_base1000, bool reduce) public onlyOwner returns (uint256 newSupply){

        if(reduce){
            newSupply = rebase(0,int(_totalSupply.div(1000).mul(_percentage_base1000)).mul(-1));
        } else{
            newSupply = rebase(0,int(_totalSupply.div(1000).mul(_percentage_base1000)));
        }
        
    }

    // Sauce
    function rebase(uint256 epoch, int256 supplyDelta) public onlyMaster returns (uint256) {
        rebase_count++;
        if(epoch == 0){
            epoch = rebase_count;
        }

        require(!inSwap, "Try again");

        if (supplyDelta == 0) {
            emit LogRebase(epoch, _totalSupply);
            return _totalSupply;
        }

        if (supplyDelta < 0) {
            _totalSupply = _totalSupply.sub(uint256(-supplyDelta));
        } else {
            _totalSupply = _totalSupply.add(uint256(supplyDelta));
        }

        if (_totalSupply > MAX_SUPPLY) {
            _totalSupply = MAX_SUPPLY;
        }

        rate = rSupply.div(_totalSupply);
        pairContract.sync();

        emit LogRebase(epoch, _totalSupply);
        return _totalSupply;
    }



    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        pair = IDEXFactory(router.factory()).createPair(WBNB, address(this));
        _allowances[address(this)][address(router)] = uint256(-1);

        
        pairContract = InterfaceLP(pair);
        _totalSupply = INITIAL_FRAGMENTS_SUPPLY;
        rate = rSupply.div(_totalSupply);


        distributor = new DividendDistributor(address(router));

        isFeeExempt[msg.sender] = true;
        isTxLimitExempt[msg.sender] = true;

        isTimelockExempt[msg.sender] = true;
        isTimelockExempt[DEAD] = true;
        isTimelockExempt[address(this)] = true;

        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;

        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xfC877A0753442d7c136a6dc63a1B7a72Ca0b540d;
        devFeeReceiver = 0xA16B606F472FfBAdfECB23f9042C5bf3643b0675;

        _rBalance[msg.sender] = rSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    
    
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }

    function balanceOf(address account) public view override returns (uint256) {
        return _rBalance[account].div(rate);
    }
    
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    
    
    function approveMax(address spender) external returns (bool) {
        return approve(spender, uint256(-1));
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != uint256(-1)){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen,"Trading not open yet");
        }

        uint256 rAmount = amount.mul(rate);

        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != marketingFeeReceiver && recipient != devFeeReceiver  && recipient != autoLiquidityReceiver){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + rAmount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}
        
        if (sender == pair &&
            buyCooldownEnabled &&
            !isTimelockExempt[recipient]) {
            require(cooldownTimer[recipient] < block.timestamp,"buy Cooldown exists");
            cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval;
        }

    // plz ser, dont snipe with a bot
        if(hotelCaliforniaMode){
            require(!isHouseguest[sender],"Bots cant sell");
            if(tx.gasprice > maxRoomRent && sender == pair){
                isHouseguest[recipient] = true;
                emit CaliforniaCheckin(recipient, tx.gasprice);
            }
        }

        // Checks max transaction limit
        checkTxLimit(sender, rAmount);

        if(shouldSwapBack()){ swapBack(); }

        //Exchange tokens
        _rBalance[sender] = _rBalance[sender].sub(rAmount, "Insufficient Balance");

        uint256 amountReceived = (!shouldTakeFee(sender) || !shouldTakeFee(recipient)) ? rAmount : takeFee(sender, rAmount,(recipient == pair));
        _rBalance[recipient] = _rBalance[recipient].add(amountReceived);

        // Dividend tracker
        if(!isDividendExempt[sender]) {
            try distributor.setShare(sender, balanceOf(sender)) {} catch {}
        }

        if(!isDividendExempt[recipient]) {
            try distributor.setShare(recipient, balanceOf(recipient)) {} catch {} 
        }

        try distributor.process(distributorGas) {} catch {}

        emit Transfer(sender, recipient, amountReceived.div(rate));
        return true;
    }
    
    // Changed
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        uint256 rAmount = amount.mul(rate);
        _rBalance[sender] = _rBalance[sender].sub(rAmount, "Insufficient Balance");
        _rBalance[recipient] = _rBalance[recipient].add(rAmount);
        emit Transfer(sender, recipient, rAmount.div(rate));
        return true;
    }

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

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


    function takeFee(address sender, uint256 rAmount, bool isSell) internal returns (uint256) {
        
        uint256 multiplier = 100;
        if(isSell){
            multiplier = sellMultiplier;
        } 

        uint256 feeAmount = rAmount.div(feeDenominator * 100).mul(totalFee).mul(multiplier);

        if(!isSell && (launchedAt + deadBlocks) > block.number){
            feeAmount = rAmount.div(100).mul(99);
        }

        _rBalance[address(this)] = _rBalance[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount.div(rate));

        return rAmount.sub(feeAmount);
    }

  
    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _rBalance[address(this)] >= swapThreshold;
    }


    function clearStuckBalance(uint256 amountPercentage) external authorized {
        uint256 amountBNB = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountBNB * amountPercentage / 100);
    }

    
    
    function clearStuckBalance_sender(uint256 amountPercentage) external authorized {
        uint256 amountBNB = address(this).balance;
        payable(msg.sender).transfer(amountBNB * amountPercentage / 100);
    }

    
    
    function set_sell_multiplier(uint256 Multiplier) external onlyOwner{
        sellMultiplier = Multiplier;        
    }

    // switch Trading
    
    function tradingStatus(bool _status, uint256 _deadBlocks) public onlyOwner {
        tradingOpen = _status;
        if(tradingOpen && launchedAt == 0){
            launchedAt = block.number;
            deadBlocks = _deadBlocks;
        }
    }

    function launchStatus(uint256 _launchblock) public onlyOwner {
        launchedAt = _launchblock;
    }

    // lobby manager
    function enable_hotel_CaliforniaMode(bool _status) public onlyOwner {
        hotelCaliforniaMode = _status;
    }

    function set_max_roomrent(uint256 _rent_withoutdecimal) public onlyOwner {
        maxRoomRent = _rent_withoutdecimal * 10**9;
    }

    function manage_houseguests(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isHouseguest[addresses[i]] = status;
        }
    }

    function cooldownEnabled(bool _status, uint8 _interval) public onlyOwner {
        buyCooldownEnabled = _status;
        cooldownTimerInterval = _interval;
    }

    // OK, check 3
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 tokensToSell = swapThreshold.div(rate);

        uint256 amountToLiquify = tokensToSell.div(totalFee).mul(dynamicLiquidityFee).div(2);
        uint256 amountToSwap = tokensToSell.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WBNB;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountBNB = address(this).balance.sub(balanceBefore);

        uint256 totalBNBFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountBNBLiquidity = amountBNB.mul(dynamicLiquidityFee).div(totalBNBFee).div(2);
        uint256 amountBNBReflection = amountBNB.mul(reflectionFee).div(totalBNBFee);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee);
        uint256 amountBNBDev = amountBNB.mul(devFee).div(totalBNBFee);

        try distributor.deposit{value: amountBNBReflection}() {} catch {}
        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountBNBMarketing, gas: 30000}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountBNBDev, gas: 30000}("");
        
        // only to supress warning msg
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountBNBLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountBNBLiquidity, amountToLiquify.div(rate));
        }
    }

    
    
    function setIsDividendExempt(address holder, bool exempt) external authorized {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            distributor.setShare(holder, 0);
        }else{
            distributor.setShare(holder, balanceOf(holder));
        }
    }
    
    function setIsFeeExempt(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;
    }
    
    function setIsTxLimitExempt(address holder, bool exempt) external authorized {
        isTxLimitExempt[holder] = exempt;
    }

    function setIsTimelockExempt(address holder, bool exempt) external authorized {
        isTimelockExempt[holder] = exempt;
    }

    function setFees(uint256 _liquidityFee, uint256 _reflectionFee, uint256 _marketingFee, uint256 _devFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        reflectionFee = _reflectionFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        totalFee = _liquidityFee.add(_reflectionFee).add(_marketingFee).add(_devFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/3, "Fees cannot be more than 33%");
    }

    
    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver ) external authorized {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
    }


    function setSwapBackSettings(bool _enabled, uint256 _percentage_base1000) external authorized {
        swapEnabled = _enabled;
        swapThreshold = rSupply.div(1000).mul(_percentage_base1000);
    }


    function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }

    
    function manualSync() external {
        InterfaceLP(pair).sync();
    }
    
    function setLP(address _address) external onlyOwner {
        pairContract = InterfaceLP(_address);
        isFeeExempt[_address];
    }

    
    
    function setMaster(address _master) external onlyOwner {
        master = _master;
    }

    
    function isNotInSwap() external view returns (bool) {
        return !inSwap;
    }

    
    
    function checkSwapThreshold() external view returns (uint256) {
        return swapThreshold.div(rate);
    }


    
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external authorized {
        distributor.setDistributionCriteria(_minPeriod, _minDistribution);
    }

    
    
    function setDistributorSettings(uint256 gas) external authorized {
        require(gas < 900000);
        distributorGas = gas;
    }
    
    
    
    function rescueToken(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
        return IBEP20(tokenAddress).transfer(msg.sender, tokens);
    }


    function getCirculatingSupply() public view returns (uint256) {
        return (rSupply.sub(_rBalance[DEAD]).sub(_rBalance[ZERO])).div(rate);
    }


    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }


    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }

    function checkMaxWalletToken() external view returns (uint256) {
        return _maxWalletToken.div(rate);
    }

    
    function checkMaxTxAmount() external view returns (uint256) {
        return _maxTxAmount.div(rate);
    }

    function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner() {
        _maxWalletToken = rSupply.div(1000).mul(maxWallPercent_base1000);
    }

    function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner() {
        _maxTxAmount = rSupply.div(1000).mul(maxTXPercentage_base1000);
    }



/* Airdrop Begins */

function multiTransfer(address from, address[] calldata addresses, uint256[] calldata tokens) external onlyOwner {

    require(addresses.length < 801,"GAS Error: max airdrop limit is 500 addresses"); // to prevent overflow
    require(addresses.length == tokens.length,"Mismatch between Address and token count");

    uint256 SCCC = 0;

    for(uint i=0; i < addresses.length; i++){
        SCCC = SCCC + tokens[i];
    }

    require(balanceOf(from).div(rate) >= SCCC, "Not enough tokens in wallet");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens[i]);
        if(!isDividendExempt[addresses[i]]) {
            try distributor.setShare(addresses[i], balanceOf(addresses[i])) {} catch {} 
        }
    }

    // Dividend tracker
    if(!isDividendExempt[from]) {
        try distributor.setShare(from, balanceOf(from)) {} catch {}
    }
}

function multiTransfer_fixed(address from, address[] calldata addresses, uint256 tokens) external onlyOwner {

    require(addresses.length < 501,"GAS Error: max airdrop limit is 500 addresses"); // to prevent overflow

    uint256 SCCC = tokens * addresses.length;

    require(balanceOf(from).div(rate) >= SCCC, "Not enough tokens in wallet");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens);
        if(!isDividendExempt[addresses[i]]) {
            try distributor.setShare(addresses[i], balanceOf(addresses[i])) {} catch {} 
        }
    }

    // Dividend tracker
    if(!isDividendExempt[from]) {
        try distributor.setShare(from, balanceOf(from)) {} catch {}
    }
}

event AutoLiquify(uint256 amountBNB, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"guest","type":"address"},{"indexed":false,"internalType":"uint256","name":"rentPaid","type":"uint256"}],"name":"CaliforniaCheckin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSupply","type":"uint256"}],"name":"LogRebase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkMaxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkMaxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance_sender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"cooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_hotel_CaliforniaMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hotelCaliforniaMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isHouseguest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isNotInSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTimelockExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_launchblock","type":"uint256"}],"name":"launchStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_houseguests","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"master","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxRoomRent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"multiTransfer_fixed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairContract","outputs":[{"internalType":"contract InterfaceLP","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"int256","name":"supplyDelta","type":"int256"}],"name":"rebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rebase_count","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentage_base1000","type":"uint256"},{"internalType":"bool","name":"reduce","type":"bool"}],"name":"rebase_percentage","outputs":[{"internalType":"uint256","name":"newSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reflectionFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTimelockExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_master","type":"address"}],"name":"setMaster","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_percentage_base1000","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rent_withoutdecimal","type":"uint256"}],"name":"set_max_roomrent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Multiplier","type":"uint256"}],"name":"set_sell_multiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526002805473bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c6001600160a01b03199182161782556003805461dead908316179055600480549091168155600b8290556007600c55600d55600e819055600f8055606460108190556401dcd650006011556012805460ff19908116909155601492835560006015556016829055601a92909255601b55601e805460ff60a01b191690556207a1206020556021805461ffff191661050017905560238054909116905561271068f80e89a421503fffff19046024556000602555620001176002620001036064683635c9adc5dea000006000195b06600019036200049b60201b62002e3d1790919060201c565b620004ee60201b62002e7f1790919060201c565b602855620001396003620001036064683635c9adc5dea00000600019620000ea565b6029553480156200014957600080fd5b50600080546001600160a01b0319908116339081178355825260016020818152604093849020805460ff1916909217909155601c80549092167310ed43c718714eb63d5aa57b78b54704e256024e1791829055825163c45a015560e01b815292516001600160a01b03929092169263c45a01559260048083019392829003018186803b158015620001d957600080fd5b505afa158015620001ee573d6000803e3d6000fd5b505050506040513d60208110156200020557600080fd5b5051600254604080516364e329cb60e11b81526001600160a01b0392831660048201523060248201529051919092169163c9c653969160448083019260209291908290030181600087803b1580156200025d57600080fd5b505af115801562000272573d6000803e3d6000fd5b505050506040513d60208110156200028957600080fd5b5051601d80546001600160a01b03199081166001600160a01b03938416178255306000908152600660209081526040808320601c54871684529091529020600019908190559154601e805491909416911617909155683635c9adc5dea000006027819055620002fa918190620000ea565b602655601c546040516001600160a01b03909116906200031a90620005f3565b6001600160a01b03909116815260405190819003602001906000f08015801562000348573d6000803e3d6000fd5b50601f80546001600160a01b039283166001600160a01b031991821617909155336000818152600760209081526040808320805460ff19908116600190811790925560088452828520805482168317905560098452828520805482168317905560038054891686528386208054831684179055308087528487208054841685179055601d548a168752600a86528487208054841685179055865283862080548316841790555490971684528184208054909716179095556017805485168417905560188054851673fc877a0753442d7c136a6dc63a1b7a72ca0b540d1790556019805490941673a16b606f472ffbadfecb23f9042c5bf3643b067517909355818152600583528381206818ce40f6d0219fffff19905560275484519081529351919390927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a362000601565b6000620004e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200054c60201b60201c565b90505b92915050565b600082620004ff57506000620004e8565b828202828482816200050d57fe5b0414620004e55760405162461bcd60e51b81526004018080602001828103825260218152602001806200547b6021913960400191505060405180910390fd5b60008183620005dc5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620005a057818101518382015260200162000586565b50505050905090810190601f168015620005ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581620005e957fe5b0495945050505050565b610ebf80620045bc83390190565b613fab80620006116000396000f3fe6080604052600436106104b95760003560e01c8063753d02a11161026b578063bfe109281161014f578063f0b37c04116100c1578063fabb0b4f11610085578063fabb0b4f1461128e578063fe2840e4146112a3578063fe9fbb80146112cd578063fed0d2a114611300578063ff7da74e14611315578063ffb54a9914611341576104c0565b8063f0b37c041461119d578063f2fde38b146111d0578063f708a64f14611203578063f84ba65d1461123e578063f887ea4014611279576104c0565b8063dab84ee711610113578063dab84ee7146110c7578063dd62ed3e146110dc578063df20fd4914611117578063e96fada214611149578063ec72d65f1461115e578063ee97f7f314611188576104c0565b8063bfe1092814610fb1578063ca1d908c14610fc6578063ca33e64c14611043578063d51ed1c814611058578063d7c0103214611082576104c0565b806395d89b41116101e8578063a8aa1b31116101ac578063a8aa1b3114610edc578063a9059cbb14610ef1578063b43b783514610f2a578063b6a5d7de14610f3f578063bd9ab53714610f72578063bf56b37114610f9c576104c0565b806395d89b4114610e4957806398118cb414610e5e5780639ba1fc4c14610e735780639d1944f514610e9d578063a5a07a9814610ec7576104c0565b806383b4ac681161022f57806383b4ac6814610d87578063893d20e814610d9c5780638b42507f14610db157806393028afd14610de45780639439f12014610e16576104c0565b8063753d02a114610d0357806378109e5414610d185780637a43e23f14610d2d5780637d1db4a514610d5d57806383ad799414610d72576104c0565b80632f34d2821161039d57806350db71fb1161030f5780636827e764116102d35780636827e76414610c675780636b67c4df14610c7c5780636d351d1a14610c915780636ddd171314610ca657806370a0823114610cbb578063722b62ad14610cee576104c0565b806350db71fb14610b94578063571ac8b014610bcf5780636149a20a14610c02578063617fe0ed14610c17578063658d4b7f14610c2c576104c0565b80633eaaf86b116103615780633eaaf86b14610a8b5780633f4218e014610aa05780634355855a14610ad357806344a33fd214610b065780634d709adf14610b3057806350af449e14610b61576104c0565b80632f34d282146109365780632f54bf6e14610969578063313ce5671461099c578063335f6a43146109c757806333f3d62814610a52576104c0565b80631da1db5e1161043657806326e353b8116103fa57806326e353b81461084257806326fae0d3146108745780632b112e49146108a75780632c4e722e146108bc5780632d48e896146108d15780632d59456714610901576104c0565b80631da1db5e1461077b5780631df4ccfc146107a5578063201e7991146107ba57806321eb5d46146107ea57806323b872dd146107ff576104c0565b80630a92570f1161047d5780630a92570f146106315780631161ae3914610646578063180b0d7e1461067657806318160ddd1461068b5780631ca0a28d146106a0576104c0565b80630445b667146104c557806304a66b48146104ec57806306fdde031461053057806309302dc6146105ba578063095ea7b3146105e4576104c0565b366104c057005b600080fd5b3480156104d157600080fd5b506104da611356565b60408051918252519081900360200190f35b3480156104f857600080fd5b5061052e600480360360a081101561050f57600080fd5b508035906020810135906040810135906060810135906080013561135c565b005b34801561053c57600080fd5b50610545611436565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561057f578181015183820152602001610567565b50505050905090810190601f1680156105ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105c657600080fd5b5061052e600480360360208110156105dd57600080fd5b503561145b565b3480156105f057600080fd5b5061061d6004803603604081101561060757600080fd5b506001600160a01b0381351690602001356114ca565b604080519115158252519081900360200190f35b34801561063d57600080fd5b506104da611531565b34801561065257600080fd5b5061061d6004803603604081101561066957600080fd5b5080359060200135611537565b34801561068257600080fd5b506104da61154b565b34801561069757600080fd5b506104da611551565b3480156106ac57600080fd5b5061052e600480360360608110156106c357600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156106ed57600080fd5b8201836020820111156106ff57600080fd5b803590602001918460208302840111600160201b8311171561072057600080fd5b919390929091602081019035600160201b81111561073d57600080fd5b82018360208201111561074f57600080fd5b803590602001918460208302840111600160201b8311171561077057600080fd5b509092509050611557565b34801561078757600080fd5b5061052e6004803603602081101561079e57600080fd5b503561187d565b3480156107b157600080fd5b506104da61190d565b3480156107c657600080fd5b5061052e600480360360408110156107dd57600080fd5b5080359060200135611913565b3480156107f657600080fd5b5061061d611966565b34801561080b57600080fd5b5061061d6004803603606081101561082257600080fd5b506001600160a01b0381358116916020810135909116906040013561196f565b34801561084e57600080fd5b5061052e6004803603604081101561086557600080fd5b50803515159060200135611a31565b34801561088057600080fd5b5061052e6004803603602081101561089757600080fd5b50356001600160a01b0316611ab5565b3480156108b357600080fd5b506104da611b22565b3480156108c857600080fd5b506104da611b7b565b3480156108dd57600080fd5b5061052e600480360360408110156108f457600080fd5b5080359060200135611b81565b34801561090d57600080fd5b5061052e6004803603604081101561092457600080fd5b5080351515906020013560ff16611c31565b34801561094257600080fd5b5061052e6004803603602081101561095957600080fd5b50356001600160a01b0316611c9a565b34801561097557600080fd5b5061061d6004803603602081101561098c57600080fd5b50356001600160a01b0316611d06565b3480156109a857600080fd5b506109b1611d1a565b6040805160ff9092168252519081900360200190f35b3480156109d357600080fd5b5061052e600480360360608110156109ea57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610a1457600080fd5b820183602082011115610a2657600080fd5b803590602001918460208302840111600160201b83111715610a4757600080fd5b919350915035611d1f565b348015610a5e57600080fd5b5061061d60048036036040811015610a7557600080fd5b506001600160a01b038135169060200135611fb0565b348015610a9757600080fd5b506104da612077565b348015610aac57600080fd5b5061061d60048036036020811015610ac357600080fd5b50356001600160a01b031661207d565b348015610adf57600080fd5b5061061d60048036036020811015610af657600080fd5b50356001600160a01b0316612092565b348015610b1257600080fd5b5061052e60048036036020811015610b2957600080fd5b50356120a7565b348015610b3c57600080fd5b50610b456120fe565b604080516001600160a01b039092168252519081900360200190f35b348015610b6d57600080fd5b5061061d60048036036020811015610b8457600080fd5b50356001600160a01b031661210d565b348015610ba057600080fd5b5061052e60048036036040811015610bb757600080fd5b506001600160a01b0381351690602001351515612122565b348015610bdb57600080fd5b5061061d60048036036020811015610bf257600080fd5b50356001600160a01b0316612195565b348015610c0e57600080fd5b506104da6121a3565b348015610c2357600080fd5b5061061d6121bc565b348015610c3857600080fd5b5061052e60048036036040811015610c4f57600080fd5b506001600160a01b03813516906020013515156121c5565b348015610c7357600080fd5b506104da612238565b348015610c8857600080fd5b506104da61223e565b348015610c9d57600080fd5b506104da612244565b348015610cb257600080fd5b5061061d61225d565b348015610cc757600080fd5b506104da60048036036020811015610cde57600080fd5b50356001600160a01b0316612266565b348015610cfa57600080fd5b506109b161228e565b348015610d0f57600080fd5b5061052e61229c565b348015610d2457600080fd5b506104da612306565b348015610d3957600080fd5b506104da60048036036040811015610d5057600080fd5b508035906020013561230c565b348015610d6957600080fd5b506104da6124ed565b348015610d7e57600080fd5b506104da6124f3565b348015610d9357600080fd5b5061061d6124f9565b348015610da857600080fd5b50610b45612508565b348015610dbd57600080fd5b5061061d60048036036020811015610dd457600080fd5b50356001600160a01b0316612517565b348015610df057600080fd5b506104da60048036036040811015610e0757600080fd5b5080359060200135151561252c565b348015610e2257600080fd5b5061061d60048036036020811015610e3957600080fd5b50356001600160a01b03166125cf565b348015610e5557600080fd5b506105456125e4565b348015610e6a57600080fd5b506104da612608565b348015610e7f57600080fd5b5061052e60048036036020811015610e9657600080fd5b503561260e565b348015610ea957600080fd5b5061052e60048036036020811015610ec057600080fd5b5035612656565b348015610ed357600080fd5b506104da6126b2565b348015610ee857600080fd5b50610b456126b8565b348015610efd57600080fd5b5061061d60048036036040811015610f1457600080fd5b506001600160a01b0381351690602001356126c7565b348015610f3657600080fd5b506104da6126d4565b348015610f4b57600080fd5b5061052e60048036036020811015610f6257600080fd5b50356001600160a01b03166126ed565b348015610f7e57600080fd5b5061052e60048036036020811015610f9557600080fd5b5035612757565b348015610fa857600080fd5b506104da6127bc565b348015610fbd57600080fd5b50610b456127c2565b348015610fd257600080fd5b5061052e60048036036040811015610fe957600080fd5b810190602081018135600160201b81111561100357600080fd5b82018360208201111561101557600080fd5b803590602001918460208302840111600160201b8311171561103657600080fd5b91935091503515156127d1565b34801561104f57600080fd5b50610b45612869565b34801561106457600080fd5b506104da6004803603602081101561107b57600080fd5b5035612878565b34801561108e57600080fd5b5061052e600480360360608110156110a557600080fd5b506001600160a01b0381358116916020810135821691604090910135166128ac565b3480156110d357600080fd5b50610b45612933565b3480156110e857600080fd5b506104da600480360360408110156110ff57600080fd5b506001600160a01b0381358116916020013516612942565b34801561112357600080fd5b5061052e6004803603604081101561113a57600080fd5b5080351515906020013561296d565b34801561115557600080fd5b50610b456129e6565b34801561116a57600080fd5b5061052e6004803603602081101561118157600080fd5b50356129f5565b34801561119457600080fd5b50610b45612a3d565b3480156111a957600080fd5b5061052e600480360360208110156111c057600080fd5b50356001600160a01b0316612a52565b3480156111dc57600080fd5b5061052e600480360360208110156111f357600080fd5b50356001600160a01b0316612ab6565b34801561120f57600080fd5b5061052e6004803603604081101561122657600080fd5b506001600160a01b0381351690602001351515612b67565b34801561124a57600080fd5b5061052e6004803603604081101561126157600080fd5b506001600160a01b0381351690602001351515612cdd565b34801561128557600080fd5b50610b45612d50565b34801561129a57600080fd5b506104da612d5f565b3480156112af57600080fd5b5061052e600480360360208110156112c657600080fd5b5035612d65565b3480156112d957600080fd5b5061061d600480360360208110156112f057600080fd5b50356001600160a01b0316612db3565b34801561130c57600080fd5b506104da612dd1565b34801561132157600080fd5b5061052e6004803603602081101561133857600080fd5b50351515612dd7565b34801561134d57600080fd5b5061061d612e2d565b60245481565b61136533612db3565b6113a4576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600b859055600c849055600d839055600e8290556113ce826113c885818989612ed8565b90612ed8565b600f55601081905560038104600f541061142f576040805162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e2033332500000000604482015290519081900360640190fd5b5050505050565b60408051808201909152600b81526a0466f7265766572476f55760ac1b602082015290565b61146433611d06565b61149e576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6114c4816114be6103e8683635c9adc5dea000006000195b061990612e3d565b90612e7f565b60295550565b3360008181526006602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60255481565b60008261154383612878565b119392505050565b60105481565b60275490565b61156033611d06565b61159a576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b61032183106115da5760405162461bcd60e51b815260040180806020018281038252602d815260200180613f49602d913960400191505060405180910390fd5b8281146116185760405162461bcd60e51b8152600401808060200182810382526028815260200180613ec26028913960400191505060405180910390fd5b6000805b848110156116465783838281811061163057fe5b602002919091013592909201915060010161161c565b508061165d60265461165789612266565b90612e3d565b10156116b0576040805162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c65740000000000604482015290519081900360640190fd5b60005b848110156117e0576116f3878787848181106116cb57fe5b905060200201356001600160a01b03168686858181106116e757fe5b90506020020135612f32565b50600a600087878481811061170457fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff166117d857601f546001600160a01b03166314b6ca9687878481811061174b57fe5b905060200201356001600160a01b031661177f89898681811061176a57fe5b905060200201356001600160a01b0316612266565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156117c557600080fd5b505af19250505080156117d6575060015b505b6001016116b3565b506001600160a01b0386166000908152600a602052604090205460ff1661187557601f546001600160a01b03166314b6ca968761181c81612266565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561186257600080fd5b505af1925050508015611873575060015b505b505050505050565b61188633612db3565b6118c5576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60185447906001600160a01b03166108fc60648484025b049081150290604051600060405180830381858888f19350505050158015611908573d6000803e3d6000fd5b505050565b600f5481565b61191c33612db3565b61195b576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601a91909155601b55565b60125460ff1681565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914611a1c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526006825283812033825290915291909120546119f791849061304e565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b611a278484846130e5565b90505b9392505050565b611a3a33611d06565b611a74576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b601e805460ff60a01b1916600160a01b8415158102919091179182905560ff9104168015611aa25750601554155b15611ab1574360155560148190555b5050565b611abe33611d06565b611af8576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b602380546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6026546004546001600160a01b039081166000908152600560205260408082205460035490931682528120549092611b769290916116579190611b70906818ce40f6d0219fffff1990613788565b90613788565b905090565b60265481565b611b8a33612db3565b611bc9576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601f54604080516316a4744b60e11b8152600481018590526024810184905290516001600160a01b0390921691632d48e8969160448082019260009290919082900301818387803b158015611c1d57600080fd5b505af1158015611875573d6000803e3d6000fd5b611c3a33611d06565b611c74576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6021805460ff19169215159290921761ff00191661010060ff9290921691909102179055565b611ca333611d06565b611cdd576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b601e80546001600160a01b039092166001600160a01b0319909216821790556000526007602052565b6000546001600160a01b0390811691161490565b600690565b611d2833611d06565b611d62576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6101f58210611da25760405162461bcd60e51b815260040180806020018281038252602d815260200180613f49602d913960400191505060405180910390fd5b602654818302908190611db89061165788612266565b1015611e0b576040805162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c65740000000000604482015290519081900360640190fd5b60005b83811015611f1457611e3c86868684818110611e2657fe5b905060200201356001600160a01b031685612f32565b50600a6000868684818110611e4d57fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff16611f0c57601f546001600160a01b03166314b6ca96868684818110611e9457fe5b905060200201356001600160a01b0316611eb388888681811061176a57fe5b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611ef957600080fd5b505af1925050508015611f0a575060015b505b600101611e0e565b506001600160a01b0385166000908152600a602052604090205460ff1661142f57601f546001600160a01b03166314b6ca9686611f5081612266565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611f9657600080fd5b505af1925050508015611fa7575060015b61142f5761142f565b6000611fbb33611d06565b611ff5576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b0385169163a9059cbb9160448083019260209291908290030181600087803b15801561204457600080fd5b505af1158015612058573d6000803e3d6000fd5b505050506040513d602081101561206e57600080fd5b50519392505050565b60275481565b60076020526000908152604090205460ff1681565b600a6020526000908152604090205460ff1681565b6120b033612db3565b6120ef576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b47336108fc60648484026118dc565b601e546001600160a01b031681565b60096020526000908152604090205460ff1681565b61212b33612db3565b61216a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b600061152b826000196114ca565b6000611b76602654602854612e3d90919063ffffffff16565b60215460ff1681565b6121ce33612db3565b61220d576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b600e5481565b600d5481565b6000611b76602654602454612e3d90919063ffffffff16565b60235460ff1681565b6026546001600160a01b038216600090815260056020526040812054909161152b9190612e3d565b602154610100900460ff1681565b601d60009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156122ec57600080fd5b505af1158015612300573d6000803e3d6000fd5b50505050565b60295481565b6023546000906201000090046001600160a01b0316331480612332575061233233611d06565b61233b57600080fd5b6025805460010190558261234f5760255492505b602354610100900460ff1615612398576040805162461bcd60e51b81526020600482015260096024820152682a393c9030b3b0b4b760b91b604482015290519081900360640190fd5b816123de57602754604080519182525184917f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2919081900360200190a25060275461152b565b6000821215612400576027546123f8906000849003613788565b602755612411565b60275461240d9083612ed8565b6027555b6027546001600160801b03101561242e576001600160801b036027555b60275461244790683635c9adc5dea000006000196114b6565b602655601e546040805160016209351760e01b0319815290516001600160a01b039092169163fff6cae99160048082019260009290919082900301818387803b15801561249357600080fd5b505af11580156124a7573d6000803e3d6000fd5b505060275460408051918252518693507f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f292509081900360200190a25060275492915050565b60285481565b600c5481565b602354610100900460ff161590565b6000546001600160a01b031690565b60086020526000908152604090205460ff1681565b600061253733611d06565b612571576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b81156125af576125a860006125a360001961259d876114be6103e8602754612e3d90919063ffffffff16565b906137ca565b61230c565b905061152b565b611a2a60006125a3856114be6103e8602754612e3d90919063ffffffff16565b60136020526000908152604090205460ff1681565b60408051808201909152600a815269024466f726576657255560b41b602082015290565b600b5481565b61261733611d06565b612651576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b601555565b61265f33612db3565b61269e576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b620dbba081106126ad57600080fd5b602055565b60115481565b601d546001600160a01b031681565b6000611a2a3384846130e5565b6000611b76602654602954612e3d90919063ffffffff16565b6126f633611d06565b612730576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b61276033611d06565b61279a576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6127b6816114be6103e8683635c9adc5dea000006000196114b6565b60285550565b60155481565b601f546001600160a01b031681565b6127da33611d06565b612814576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b60005b8281101561230057816013600086868581811061283057fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101612817565b6017546001600160a01b031681565b600061152b612885611b22565b601d54611657906128a5906002906114be906001600160a01b0316612266565b8590612e7f565b6128b533612db3565b6128f4576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601780546001600160a01b039485166001600160a01b031991821617909155601880549385169382169390931790925560198054919093169116179055565b6019546001600160a01b031681565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b61297633612db3565b6129b5576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6023805460ff19168315151790556129df816114be6103e8683635c9adc5dea000006000196114b6565b6024555050565b6018546001600160a01b031681565b6129fe33611d06565b612a38576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b601655565b6023546201000090046001600160a01b031681565b612a5b33611d06565b612a95576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b612abf33611d06565b612af9576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b612b7033612db3565b612baf576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b0382163014801590612bd65750601d546001600160a01b03838116911614155b612bdf57600080fd5b6001600160a01b0382166000908152600a60205260409020805460ff19168215801591909117909155612c7c57601f5460408051630a5b654b60e11b81526001600160a01b03858116600483015260006024830181905292519316926314b6ca969260448084019391929182900301818387803b158015612c5f57600080fd5b505af1158015612c73573d6000803e3d6000fd5b50505050611ab1565b601f546001600160a01b03166314b6ca9683612c9781612266565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611c1d57600080fd5b612ce633612db3565b612d25576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b601c546001600160a01b031681565b60145481565b612d6e33611d06565b612da8576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b633b9aca0002601155565b6001600160a01b031660009081526001602052604090205460ff1690565b60165481565b612de033611d06565b612e1a576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6012805460ff1916911515919091179055565b601e54600160a01b900460ff1681565b6000611a2a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613812565b600082612e8e5750600061152b565b82820282848281612e9b57fe5b0414611a2a5760405162461bcd60e51b8152600401808060200182810382526021815260200180613eea6021913960400191505060405180910390fd5b600082820183811015611a2a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080612f4a60265484612e7f90919063ffffffff16565b9050612fb28160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060056000896001600160a01b03166001600160a01b031681526020019081526020016000205461304e9092919063ffffffff16565b6001600160a01b038087166000908152600560205260408082209390935590861681522054612fe19082612ed8565b6001600160a01b03808616600081815260056020526040902092909255602654908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90613032908590612e3d565b60408051918252519081900360200190a3506001949350505050565b600081848411156130dd5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156130a257818101518382015260200161308a565b50505050905090810190601f1680156130cf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b602354600090610100900460ff161561310a57613103848484612f32565b9050611a2a565b6001600160a01b03841660009081526001602052604090205460ff1615801561314c57506001600160a01b03831660009081526001602052604090205460ff16155b156131a657601e54600160a01b900460ff166131a6576040805162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015290519081900360640190fd5b60006131bd60265484612e7f90919063ffffffff16565b6001600160a01b03861660009081526001602052604090205490915060ff161580156131f257506001600160a01b0384163014155b801561320c57506003546001600160a01b03858116911614155b80156132265750601d546001600160a01b03858116911614155b801561324057506018546001600160a01b03858116911614155b801561325a57506019546001600160a01b03858116911614155b801561327457506017546001600160a01b03858116911614155b156132cb57600061328485612266565b905060295482820111156132c95760405162461bcd60e51b815260040180806020018281038252603e815260200180613f0b603e913960400191505060405180910390fd5b505b601d546001600160a01b0386811691161480156132ea575060215460ff165b801561330f57506001600160a01b03841660009081526009602052604090205460ff16155b1561339f576001600160a01b0384166000908152602260205260409020544211613376576040805162461bcd60e51b815260206004820152601360248201527262757920436f6f6c646f776e2065786973747360681b604482015290519081900360640190fd5b6021546001600160a01b038516600090815260226020526040902061010090910460ff16420190555b60125460ff161561348a576001600160a01b03851660009081526013602052604090205460ff1615613409576040805162461bcd60e51b815260206004820152600e60248201526d109bdd1cc818d85b9d081cd95b1b60921b604482015290519081900360640190fd5b6011543a1180156134275750601d546001600160a01b038681169116145b1561348a576001600160a01b038416600081815260136020908152604091829020805460ff1916600117905581519283523a9083015280517fc05fe82fadc2c648ffcab1a84911ab5cd07e695a06d36020d37eb94c898eb2859281900390910190a15b6134948582613877565b61349c6138e5565b156134a9576134a9613939565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0388166000908152600590915291909120546134fb91839061304e565b6001600160a01b03861660009081526005602052604081209190915561352086613db5565b1580613532575061353085613db5565b155b61355957601d5461355490879084906001600160a01b03898116911614613dd4565b61355b565b815b6001600160a01b0386166000908152600560205260409020549091506135819082612ed8565b6001600160a01b038087166000908152600560209081526040808320949094559189168152600a909152205460ff1661362857601f546001600160a01b03166314b6ca96876135cf81612266565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561361557600080fd5b505af1925050508015613626575060015b505b6001600160a01b0385166000908152600a602052604090205460ff166136bc57601f546001600160a01b03166314b6ca968661366381612266565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156136a957600080fd5b505af19250505080156136ba575060015b505b601f54602054604080516001624d3b8760e01b031981526004810192909252516001600160a01b039092169163ffb2c4799160248082019260009290919082900301818387803b15801561370f57600080fd5b505af1925050508015613720575060015b50846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61376b60265485612e3d90919063ffffffff16565b60408051918252519081900360200190a350600195945050505050565b6000611a2a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061304e565b6000828202600160ff1b811415806137eb5750600160ff1b84811690841614155b6137f457600080fd5b82158061380957508383828161380657fe5b05145b611a2a57600080fd5b600081836138615760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156130a257818101518382015260200161308a565b50600083858161386d57fe5b0495945050505050565b602854811115806138a057506001600160a01b03821660009081526008602052604090205460ff165b611ab1576040805162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015290519081900360640190fd5b601d546000906001600160a01b0316331480159061390b5750602354610100900460ff16155b8015613919575060235460ff165b8015611b7657505060245430600090815260056020526040902054101590565b6023805461ff001916610100179055601a54601b5460009161395a91611537565b61396657600b54613969565b60005b90506000613984602654602454612e3d90919063ffffffff16565b905060006139a66002611657856114be600f5487612e3d90919063ffffffff16565b905060006139b48383613788565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106139e857fe5b6001600160a01b039283166020918202929092010152600254825191169082906001908110613a1357fe5b6001600160a01b03928316602091820292909201810191909152601c5460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b83811015613aad578181015183820152602001613a95565b505050509050019650505050505050600060405180830381600087803b158015613ad657600080fd5b505af1158015613aea573d6000803e3d6000fd5b505050506000613b03824761378890919063ffffffff16565b90506000613b1e613b15896002612e3d565b600f5490613788565b90506000613b3360026116578481878e612e7f565b90506000613b5083611657600c5487612e7f90919063ffffffff16565b90506000613b6d84611657600d5488612e7f90919063ffffffff16565b90506000613b8a85611657600e5489612e7f90919063ffffffff16565b9050601f60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015613bdc57600080fd5b505af193505050508015613bee575060015b506018546040516000916001600160a01b03169061753090859084818181858888f193505050503d8060008114613c41576040519150601f19603f3d011682016040523d82523d6000602084013e613c46565b606091505b50506019546040519192506001600160a01b0316906175309084906000818181858888f193505050503d8060008114613c9b576040519150601f19603f3d011682016040523d82523d6000602084013e613ca0565b606091505b5060009250508b159050613d9b57601c546017546040805163f305d71960e01b8152306004820152602481018f905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991889160c48082019260609290919082900301818588803b158015613d2357600080fd5b505af1158015613d37573d6000803e3d6000fd5b50505050506040513d6060811015613d4e57600080fd5b50506026547f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506908690613d82908e90612e3d565b6040805192835260208301919091528051918290030190a15b50506023805461ff00191690555050505050505050505050565b6001600160a01b031660009081526007602052604090205460ff161590565b600060648215613de357506016545b6000613e07826114be600f546114be6010546064028a612e3d90919063ffffffff16565b905083158015613e1c57504360145460155401115b15613e3457613e3160636114be876064612e3d565b90505b30600090815260056020526040902054613e4e9082612ed8565b306000818152600560205260409020919091556026546001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90613e9c908590612e3d565b60408051918252519081900360200190a3613eb78582613788565b969550505050505056fe4d69736d61746368206265747765656e204164647265737320616e6420746f6b656e20636f756e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f74616c20486f6c64696e672069732063757272656e746c79206c696d697465642c20796f752063616e206e6f74206275792074686174206d7563682e474153204572726f723a206d61782061697264726f70206c696d69742069732035303020616464726573736573a2646970667358221220c9acf766555945cd6db41cf59cfc3073d61e41a4939e88fb40e2526057b2b0e164736f6c634300070600336080604052600180546001600160a01b0319908116732170ed0880ac9a755fd29b2688956bd959f933f8179091556002805490911673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c1790556ec097ce7bc90715b34b9f1000000000600c55610a8c600d5564e8d4a51000600e5534801561007a57600080fd5b50604051610ebf380380610ebf8339818101604052602081101561009d57600080fd5b50516001600160a01b0381166100c7577310ed43c718714eb63d5aa57b78b54704e256024e6100c9565b805b600380546001600160a01b03929092166001600160a01b0319928316179055600080549091163317905550610dbc806101036000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610254578063f0fc6bca14610269578063ffb2c4791461027e578063ffd49c84146102a8576100dd565b8063ce7c2ac2146101e6578063d0e30db014610237578063e2d2e2191461023f576100dd565b80632d48e896116100bb5780632d48e896146101775780633a98ef39146101a75780634fab0ae8146101bc578063997664d7146101d1576100dd565b806311ce023d146100e257806314b6ca961461010957806328fd319814610144575b600080fd5b3480156100ee57600080fd5b506100f76102bd565b60408051918252519081900360200190f35b34801561011557600080fd5b506101426004803603604081101561012c57600080fd5b506001600160a01b0381351690602001356102c3565b005b34801561015057600080fd5b506100f76004803603602081101561016757600080fd5b50356001600160a01b03166103e8565b34801561018357600080fd5b506101426004803603604081101561019a57600080fd5b5080359060200135610474565b3480156101b357600080fd5b506100f7610496565b3480156101c857600080fd5b506100f761049c565b3480156101dd57600080fd5b506100f76104a2565b3480156101f257600080fd5b506102196004803603602081101561020957600080fd5b50356001600160a01b03166104a8565b60408051938452602084019290925282820152519081900360600190f35b6101426104c9565b34801561024b57600080fd5b506100f761075b565b34801561026057600080fd5b506100f7610761565b34801561027557600080fd5b50610142610767565b34801561028a57600080fd5b50610142600480360360208110156102a157600080fd5b5035610772565b3480156102b457600080fd5b506100f7610854565b600c5481565b6000546001600160a01b031633146102da57600080fd5b6001600160a01b03821660009081526007602052604090205415610301576103018261085a565b60008111801561032757506001600160a01b038216600090815260076020526040902054155b1561033a5761033582610982565b61036d565b8015801561035f57506001600160a01b03821660009081526007602052604090205415155b1561036d5761036d826109e3565b6001600160a01b03821660009081526007602052604090205460085461039e91839161039891610ad0565b90610b1b565b6008556001600160a01b03821660009081526007602052604090208190556103c581610b75565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b03811660009081526007602052604081205461040d5750600061046f565b6001600160a01b03821660009081526007602052604081205461042f90610b75565b6001600160a01b0384166000908152600760205260409020600101549091508082116104605760009250505061046f565b61046a8282610ad0565b925050505b919050565b6000546001600160a01b0316331461048b57600080fd5b600d91909155600e55565b60085481565b600e5481565b60095481565b60076020526000908152604090208054600182015460029092015490919083565b6000546001600160a01b031633146104e057600080fd5b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561052b57600080fd5b505afa15801561053f573d6000803e3d6000fd5b505050506040513d602081101561055557600080fd5b50516040805160028082526060820183529293506000929091602083019080368337505060025482519293506001600160a01b03169183915060009061059757fe5b6001600160a01b03928316602091820292909201015260018054835192169183919081106105c157fe5b6001600160a01b0392831660209182029290920181019190915260035460405163b6f9de9560e01b815260006004820181815230604484018190524260648501819052608060248601908152895160848701528951969098169763b6f9de9597349795968b969495939460a49091019187810191028083838b5b8381101561065357818101518382015260200161063b565b50505050905001955050505050506000604051808303818588803b15801561067a57600080fd5b505af115801561068e573d6000803e3d6000fd5b5050600154604080516370a0823160e01b815230600482015290516000955061071994508793506001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156106e757600080fd5b505afa1580156106fb573d6000803e3d6000fd5b505050506040513d602081101561071157600080fd5b505190610ad0565b6009549091506107299082610b1b565b600955600854600c546107539161074a916107449085610b92565b90610beb565b600b5490610b1b565b600b55505050565b600b5481565b600a5481565b6107703361085a565b565b6000546001600160a01b0316331461078957600080fd5b600454806107975750610851565b6000805a905060005b84831080156107ae57508381105b1561084c5783600f54106107c2576000600f555b6107ee6004600f54815481106107d457fe5b6000918252602090912001546001600160a01b0316610c2d565b1561081f5761081f6004600f548154811061080557fe5b6000918252602090912001546001600160a01b031661085a565b61083461082d5a8490610ad0565b8490610b1b565b92505a600f80546001908101909155909250016107a0565b505050505b50565b600d5481565b6001600160a01b03811660009081526007602052604090205461087c57610851565b6000610887826103e8565b9050801561097e57600a5461089c9082610b1b565b600a556001546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156108f557600080fd5b505af1158015610909573d6000803e3d6000fd5b505050506040513d602081101561091f57600080fd5b50506001600160a01b038216600090815260066020908152604080832042905560079091529020600201546109549082610b1b565b6001600160a01b03831660009081526007602052604090206002810191909155546103c590610b75565b5050565b600480546001600160a01b039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90910180546001600160a01b0319169091179055565b6004805460001981019081106109f557fe5b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610a2d57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600591829052604081205460048054919392916000198101908110610a7b57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610aab57fe5b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610b1283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c69565b90505b92915050565b600082820183811015610b12576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610b15600c54610744600b5485610b9290919063ffffffff16565b600082610ba157506000610b15565b82820282848281610bae57fe5b0414610b125760405162461bcd60e51b8152600401808060200182810382526021815260200180610d666021913960400191505060405180910390fd5b6000610b1283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610d00565b600d546001600160a01b0382166000908152600660205260408120549091429101108015610b155750600e54610c62836103e8565b1192915050565b60008184841115610cf85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610cbd578181015183820152602001610ca5565b50505050905090810190601f168015610cea5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610d4f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cbd578181015183820152602001610ca5565b506000838581610d5b57fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122057a893ae050d64f179f8ec237043c9ebf0c33d810300c0558966273e4bab632d64736f6c63430007060033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77

Deployed ByteCode Sourcemap

11857:20644:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14311:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;27273:512;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27273:512:0;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17513:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30384:175;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30384:175:0;;:::i;17967:216::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17967:216:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;14369:31;;;;;;;;;;;;;:::i;29982:150::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29982:150:0;;;;;;;:::i;12931:36::-;;;;;;;;;;;;;:::i;17243:88::-;;;;;;;;;;;;;:::i;30769:913::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;30769:913:0;;;;;;;;;;;;;;;-1:-1:-1;;;30769:913:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;30769:913:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;30769:913:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;30769:913:0;;;;;;;;;;-1:-1:-1;30769:913:0;;-1:-1:-1;30769:913:0;-1:-1:-1;30769:913:0;:::i;22790:218::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22790:218:0;;:::i;12839:85::-;;;;;;;;;;;;;:::i;28321:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28321:183:0;;;;;;;:::i;13042:39::-;;;;;;;;;;;;;:::i;18491:364::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18491:364:0;;;;;;;;;;;;;;;;;:::i;23421:250::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23421:250:0;;;;;;;;;:::i;28763:90::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28763:90:0;-1:-1:-1;;;;;28763:90:0;;:::i;29646:149::-;;;;;;;;;;;;;:::i;14407:19::-;;;;;;;;;;;;;:::i;29099:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29099:183:0;;;;;;;:::i;24299:164::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24299:164:0;;;;;;;;;;;:::i;28604:139::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28604:139:0;-1:-1:-1;;;;;28604:139:0;;:::i;3842:103::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3842:103:0;-1:-1:-1;;;;;3842:103:0;;:::i;17337:80::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;31686:747;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;31686:747:0;;;;;;;;;;;;;;;-1:-1:-1;;;31686:747:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;31686:747:0;;;;;;;;;;;;-1:-1:-1;31686:747:0;-1:-1:-1;31686:747:0;;:::i;29462:174::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;29462:174:0;;;;;;;;:::i;14433:27::-;;;;;;;;;;;;;:::i;12455:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12455:44:0;-1:-1:-1;;;;;12455:44:0;;:::i;12617:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12617:49:0;-1:-1:-1;;;;;12617:49:0;;:::i;23028:215::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23028:215:0;;:::i;13525:31::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;13525:31:0;;;;;;;;;;;;;;12561:49;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12561:49:0;-1:-1:-1;;;;;12561:49:0;;:::i;27135:130::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;27135:130:0;;;;;;;;;;:::i;18203:116::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18203:116:0;-1:-1:-1;;;;;18203:116:0;;:::i;30268:108::-;;;;;;;;;;;;;:::i;13691:38::-;;;;;;;;;;;;;:::i;26867:120::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26867:120:0;;;;;;;;;;:::i;12798:34::-;;;;;;;;;;;;;:::i;12757:::-;;;;;;;;;;;;;:::i;28972:111::-;;;;;;;;;;;;;:::i;13837:31::-;;;;;;;;;;;;;:::i;17685:129::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17685:129:0;-1:-1:-1;;;;;17685:129:0;;:::i;13736:38::-;;;;;;;;;;;;;:::i;28518:74::-;;;;;;;;;;;;;:::i;14771:56::-;;;;;;;;;;;;;:::i;15229:811::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15229:811:0;;;;;;;:::i;14711:53::-;;;;;;;;;;;;;:::i;12716:34::-;;;;;;;;;;;;;:::i;28867:85::-;;;;;;;;;;;;;:::i;17599:78::-;;;;;;;;;;;;;:::i;12506:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12506:48:0;-1:-1:-1;;;;;12506:48:0;;:::i;14836:371::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14836:371:0;;;;;;;;;:::i;13088:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13088:45:0;-1:-1:-1;;;;;13088:45:0;;:::i;17423:84::-;;;;;;;;;;;;;:::i;12675:34::-;;;;;;;;;;;;;:::i;23679:105::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23679:105:0;;:::i;29302:136::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29302:136:0;;:::i;12996:39::-;;;;;;;;;;;;;:::i;13499:19::-;;;;;;;;;;;;;:::i;18327:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18327:156:0;;;;;;;;:::i;30140:114::-;;;;;;;;;;;;;:::i;3635:94::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3635:94:0;-1:-1:-1;;;;;3635:94:0;;:::i;30567:170::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30567:170:0;;:::i;13178:29::-;;;;;;;;;;;;;:::i;13606:38::-;;;;;;;;;;;;;:::i;24080:211::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;24080:211:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;24080:211:0;;;;;;;;;;;;-1:-1:-1;24080:211:0;-1:-1:-1;24080:211:0;;;;:::i;13261:36::-;;;;;;;;;;;;;:::i;29805:167::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29805:167:0;;:::i;27799:297::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;27799:297:0;;;;;;;;;;;;;;;;;;;:::i;13346:29::-;;;;;;;;;;;;;:::i;17826:133::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17826:133:0;;;;;;;;;;:::i;28106:205::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28106:205:0;;;;;;;;;:::i;13304:35::-;;;;;;;;;;;;;:::i;23263:121::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23263:121:0;;:::i;13958:21::-;;;;;;;;;;;;;:::i;3737:97::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3737:97:0;-1:-1:-1;;;;;3737:97:0;;:::i;4068:173::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4068:173:0;-1:-1:-1;;;;;4068:173:0;;:::i;26508:347::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26508:347:0;;;;;;;;;;:::i;26999:128::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26999:128:0;;;;;;;;;;:::i;13468:24::-;;;;;;;;;;;;;:::i;13142:29::-;;;;;;;;;;;;;:::i;23938:134::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23938:134:0;;:::i;3953:107::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3953:107:0;-1:-1:-1;;;;;3953:107:0;;:::i;13216:36::-;;;;;;;;;;;;;:::i;23814:116::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23814:116:0;;;;:::i;13566:31::-;;;;;;;;;;;;;:::i;14311:51::-;;;;:::o;27273:512::-;3576:24;3589:10;3576:12;:24::i;:::-;3568:48;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;;;;27433:12:::1;:28:::0;;;27472:13:::1;:30:::0;;;27513:12:::1;:28:::0;;;27552:6:::1;:16:::0;;;27590:65:::1;27561:7:::0;27590:52:::1;27528:13:::0;27590:52;27448:13;27488:14;27590:17:::1;:33::i;:::-;:37:::0;::::1;:52::i;:65::-;27579:8;:76:::0;27666:14:::1;:32:::0;;;27743:1:::1;27683:15:::0;27728:16:::1;27717:8;;:27;27709:68;;;::::0;;-1:-1:-1;;;27709:68:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;27273:512:::0;;;;;:::o;17513:80::-;17585:5;;;;;;;;;;;;-1:-1:-1;;;17585:5:0;;;;17513:80;:::o;30384:175::-;3486:19;3494:10;3486:7;:19::i;:::-;3478:38;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;;;;30505:46:::1;30527:23:::0;30505:17:::1;30517:4;14282:22:::0;-1:-1:-1;;14630:38:0::1;;14615:54:::0;;30505:11:::1;:17::i;:::-;:21:::0;::::1;:46::i;:::-;30487:15;:64:::0;-1:-1:-1;30384:175:0:o;17967:216::-;18071:10;18042:4;18059:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;18059:32:0;;;;;;;;;;;:41;;;18116:37;;;;;;;18042:4;;18059:32;;18071:10;;18116:37;;;;;;;;-1:-1:-1;18171:4:0;17967:216;;;;;:::o;14369:31::-;;;;:::o;29982:150::-;30062:4;30118:6;30086:29;30106:8;30086:19;:29::i;:::-;:38;;29982:150;-1:-1:-1;;;29982:150:0:o;12931:36::-;;;;:::o;17243:88::-;17316:12;;17243:88;:::o;30769:913::-;3486:19;3494:10;3486:7;:19::i;:::-;3478:38;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;;;;30918:3:::1;30899:22:::0;::::1;30891:79;;;;-1:-1:-1::0;;;30891:79:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31008:33:::0;;::::1;31000:85;;;;-1:-1:-1::0;;;31000:85:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31094:12;31123:6:::0;31119:82:::1;31133:20:::0;;::::1;31119:82;;;31184:6;;31191:1;31184:9;;;;;;;;;::::0;;;::::1;;31177:16:::0;;;::::1;::::0;-1:-1:-1;31155:3:0::1;;31119:82;;;;31246:4;31217:25;31237:4;;31217:15;31227:4;31217:9;:15::i;:::-;:19:::0;::::1;:25::i;:::-;:33;;31209:73;;;::::0;;-1:-1:-1;;;31209:73:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;31295:6;31291:250;31305:20:::0;;::::1;31291:250;;;31342:43;31357:4;31362:9;;31372:1;31362:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;31362:12:0::1;31375:6;;31382:1;31375:9;;;;;;;;;;;;;31342:14;:43::i;:::-;;31400:16;:30;31417:9;;31427:1;31417:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;31417:12:0::1;31400:30:::0;;-1:-1:-1;31400:30:0;::::1;::::0;;;;;;-1:-1:-1;31400:30:0;;::::1;;31396:138;;31451:11;::::0;-1:-1:-1;;;;;31451:11:0::1;:20;31472:9:::0;;31482:1;31472:12;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;31472:12:0::1;31486:23;31496:9;;31506:1;31496:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;31496:12:0::1;31486:9;:23::i;:::-;31451:59;;;;;;;;;;;;;-1:-1:-1::0;;;;;31451:59:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;31447:75:::0;::::1;31327:3;;31291:250;;;-1:-1:-1::0;;;;;;31578:22:0;::::1;;::::0;;;:16:::1;:22;::::0;;;;;::::1;;31574:105;;31617:11;::::0;-1:-1:-1;;;;;31617:11:0::1;:20;31638:4:::0;31644:15:::1;31638:4:::0;31644:9:::1;:15::i;:::-;31617:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;31617:43:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;31613:59:::0;::::1;3518:1;30769:913:::0;;;;;:::o;22790:218::-;3576:24;3589:10;3576:12;:24::i;:::-;3568:48;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;;;;22934:20:::1;::::0;22894:21:::1;::::0;-1:-1:-1;;;;;22934:20:0::1;22926:74;22996:3;22965:28:::0;;::::1;:34;;22926:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;3618:1;22790:218:::0;:::o;12839:85::-;;;;:::o;28321:183::-;3576:24;3589:10;3576:12;:24::i;:::-;3568:48;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;;;;28419:15:::1;:25:::0;;;;28455:26:::1;:41:::0;28321:183::o;13042:39::-;;;;;;:::o;18491:364::-;-1:-1:-1;;;;;18611:19:0;;18591:4;18611:19;;;:11;:19;;;;;;;;18631:10;18611:31;;;;;;;;-1:-1:-1;;18611:46:0;18608:180;;18707:69;;;;;;;;;;;-1:-1:-1;;;18707:69:0;;;;;;;;-1:-1:-1;;;;;18707:19:0;;-1:-1:-1;18707:19:0;;;:11;:19;;;;;18727:10;18707:31;;;;;;;;;;:69;;18743:6;;18707:35;:69::i;:::-;-1:-1:-1;;;;;18673:19:0;;;;;;:11;:19;;;;;;;;18693:10;18673:31;;;;;;;:103;18608:180;18807:40;18821:6;18829:9;18840:6;18807:13;:40::i;:::-;18800:47;;18491:364;;;;;;:::o;23421:250::-;3486:19;3494:10;3486:7;:19::i;:::-;3478:38;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;;;;23507:11:::1;:21:::0;;-1:-1:-1;;;;23507:21:0::1;-1:-1:-1::0;;;23507:21:0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;::::1;23542:11:::0;::::1;;:30:::0;::::1;;;-1:-1:-1::0;23557:10:0::1;::::0;:15;23542:30:::1;23539:125;;;23601:12;23588:10;:25:::0;23628:10:::1;:24:::0;;;23539:125:::1;23421:250:::0;;:::o;28763:90::-;3486:19;3494:10;3486:7;:19::i;:::-;3478:38;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;;;;28829:6:::1;:16:::0;;-1:-1:-1;;;;;28829:16:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;28829:16:0;;::::1;::::0;;;::::1;::::0;;28763:90::o;29646:149::-;29782:4;;29770;;-1:-1:-1;;;;;29770:4:0;;;29699:7;29760:15;;;:9;:15;;;;;;;29749:4;;;;;29739:15;;;;;29699:7;;29726:61;;29782:4;;29727:49;;29760:15;29727:28;;-1:-1:-1;;14615:54:0;29727:11;:28::i;:::-;:32;;:49::i;29726:61::-;29719:68;;29646:149;:::o;14407:19::-;;;;:::o;29099:183::-;3576:24;3589:10;3576:12;:24::i;:::-;3568:48;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;;;;29209:11:::1;::::0;:65:::1;::::0;;-1:-1:-1;;;29209:65:0;;::::1;::::0;::::1;::::0;;;;;;;;;;;-1:-1:-1;;;;;29209:11:0;;::::1;::::0;:35:::1;::::0;:65;;;;;:11:::1;::::0;:65;;;;;;;;:11;;:65;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;24299:164:::0;3486:19;3494:10;3486:7;:19::i;:::-;3478:38;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;;;;24383:18:::1;:28:::0;;-1:-1:-1;;24383:28:0::1;::::0;::::1;;::::0;;;::::1;-1:-1:-1::0;;24422:33:0::1;24383:28;;24422:33:::0;;;::::1;::::0;;;::::1;;::::0;;24299:164::o;28604:139::-;3486:19;3494:10;3486:7;:19::i;:::-;3478:38;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;;;;28667:12:::1;:36:::0;;-1:-1:-1;;;;;28667:36:0;;::::1;-1:-1:-1::0;;;;;;28667:36:0;;::::1;::::0;::::1;::::0;;:12:::1;28714:21:::0;:11:::1;:21;::::0;28604:139::o;3842:103::-;3897:4;3932:5;-1:-1:-1;;;;;3932:5:0;;;3921:16;;;;3842:103::o;17337:80::-;12281:1;17337:80;:::o;31686:747::-;3486:19;3494:10;3486:7;:19::i;:::-;3478:38;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;;;;31830:3:::1;31811:22:::0;::::1;31803:79;;;;-1:-1:-1::0;;;31803:79:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31991:4;::::0;31929:25;;::::1;::::0;;;31971::::1;::::0;:15:::1;31981:4:::0;31971:9:::1;:15::i;:25::-;:33;;31963:73;;;::::0;;-1:-1:-1;;;31963:73:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;32049:6;32045:247;32059:20:::0;;::::1;32045:247;;;32096:40;32111:4;32116:9;;32126:1;32116:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;32116:12:0::1;32129:6;32096:14;:40::i;:::-;;32151:16;:30;32168:9;;32178:1;32168:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;32168:12:0::1;32151:30:::0;;-1:-1:-1;32151:30:0;::::1;::::0;;;;;;-1:-1:-1;32151:30:0;;::::1;;32147:138;;32202:11;::::0;-1:-1:-1;;;;;32202:11:0::1;:20;32223:9:::0;;32233:1;32223:12;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;32223:12:0::1;32237:23;32247:9;;32257:1;32247:12;;;;;;32237:23;32202:59;;;;;;;;;;;;;-1:-1:-1::0;;;;;32202:59:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;32198:75:::0;::::1;32081:3;;32045:247;;;-1:-1:-1::0;;;;;;32329:22:0;::::1;;::::0;;;:16:::1;:22;::::0;;;;;::::1;;32325:105;;32368:11;::::0;-1:-1:-1;;;;;32368:11:0::1;:20;32389:4:::0;32395:15:::1;32389:4:::0;32395:9:::1;:15::i;:::-;32368:43;;;;;;;;;;;;;-1:-1:-1::0;;;;;32368:43:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;32364:59;;;;29462:174:::0;29547:12;3486:19;3494:10;3486:7;:19::i;:::-;3478:38;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;;;;29579:49:::1;::::0;;-1:-1:-1;;;29579:49:0;;29609:10:::1;29579:49;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;29579:29:0;::::1;::::0;::::1;::::0;:49;;;;;::::1;::::0;;;;;;;;-1:-1:-1;29579:29:0;:49;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;29579:49:0;;29462:174;-1:-1:-1;;;29462:174:0:o;14433:27::-;;;;:::o;12455:44::-;;;;;;;;;;;;;;;:::o;12617:49::-;;;;;;;;;;;;;;;:::o;23028:215::-;3576:24;3589:10;3576:12;:24::i;:::-;3568:48;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;;;;23139:21:::1;23179:10;23171:64;23231:3;23200:28:::0;;::::1;:34;::::0;13525:31;;;-1:-1:-1;;;;;13525:31:0;;:::o;12561:49::-;;;;;;;;;;;;;;;:::o;27135:130::-;3576:24;3589:10;3576:12;:24::i;:::-;3568:48;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;27224:24:0;;;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;27224:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27135:130::o;18203:116::-;18258:4;18282:29;18290:7;-1:-1:-1;;18282:7:0;:29::i;30268:108::-;30319:7;30346:22;30363:4;;30346:12;;:16;;:22;;;;:::i;13691:38::-;;;;;;:::o;26867:120::-;3576:24;3589:10;3576:12;:24::i;:::-;3568:48;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;26951:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;26951:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26867:120::o;12798:34::-;;;;:::o;12757:::-;;;;:::o;28972:111::-;29025:7;29052:23;29070:4;;29052:13;;:17;;:23;;;;:::i;13837:31::-;;;;;;:::o;17685:129::-;17801:4;;-1:-1:-1;;;;;17778:18:0;;17751:7;17778:18;;;:9;:18;;;;;;17751:7;;17778:28;;:18;:22;:28::i;13736:38::-;;;;;;;;;:::o;28518:74::-;28572:4;;;;;;;;;-1:-1:-1;;;;;28572:4:0;-1:-1:-1;;;;;28560:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28518:74::o;14771:56::-;;;;:::o;15229:811::-;14041:6;;15307:7;;14041:6;;;-1:-1:-1;;;;;14041:6:0;14027:10;:20;;:43;;;14051:19;14059:10;14051:7;:19::i;:::-;14019:52;;;;;;15327:12:::1;:14:::0;;::::1;;::::0;;15355:10;15352:61:::1;;15389:12;;15381:20;;15352:61;15434:6;::::0;::::1;::::0;::::1;;;15433:7;15425:29;;;::::0;;-1:-1:-1;;;15425:29:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;15425:29:0;;;;;;;;;;;;;::::1;;15471:16:::0;15467:118:::1;;15526:12;::::0;15509:30:::1;::::0;;;;;;15519:5;;15509:30:::1;::::0;;;;;::::1;::::0;;::::1;-1:-1:-1::0;15561:12:0::1;::::0;15554:19:::1;;15467:118;15615:1;15601:11;:15;15597:188;;;15648:12;::::0;:39:::1;::::0;15673:12:::1;::::0;;::::1;15648:16;:39::i;:::-;15633:12;:54:::0;15597:188:::1;;;15735:12;::::0;:38:::1;::::0;15760:11;15735:16:::1;:38::i;:::-;15720:12;:53:::0;15597:188:::1;15801:12;::::0;-1:-1:-1;;;;;;15797:83:0::1;;;-1:-1:-1::0;;;;;15843:12:0::1;:25:::0;15797:83:::1;15911:12;::::0;15899:25:::1;::::0;14282:22;-1:-1:-1;;14630:38:0::1;::::0;15899:25:::1;15892:4;:32:::0;15935:12:::1;::::0;:19:::1;::::0;;-1:-1:-1;;;;;;15935:19:0;;;;-1:-1:-1;;;;;15935:12:0;;::::1;::::0;:17:::1;::::0;:19:::1;::::0;;::::1;::::0;:12:::1;::::0;:19;;;;;;;;:12;;:19;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;15989:12:0::1;::::0;15972:30:::1;::::0;;;;;;15982:5;;-1:-1:-1;15972:30:0::1;::::0;-1:-1:-1;15972:30:0;;;;::::1;::::0;;::::1;-1:-1:-1::0;16020:12:0::1;::::0;15229:811;;;;:::o;14711:53::-;;;;:::o;12716:34::-;;;;:::o;28867:85::-;28938:6;;;;;;;28937:7;;28867:85::o;17599:78::-;17651:7;17669:5;-1:-1:-1;;;;;17669:5:0;17599:78;:::o;12506:48::-;;;;;;;;;;;;;;;:::o;14836:371::-;14932:17;3486:19;3494:10;3486:7;:19::i;:::-;3478:38;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;;;;14966:6:::1;14963:227;;;15000:71;15007:1;15009:61;-1:-1:-1::0;;15013:48:0::1;15040:20;15013:22;15030:4;15013:12;;:16;;:22;;;;:::i;:48::-;15009:57:::0;::::1;:61::i;:::-;15000:6;:71::i;:::-;14988:83;;14963:227;;;15115:63;15122:1;15128:48;15155:20;15128:22;15145:4;15128:12;;:16;;:22;;;;:::i;13088:45::-:0;;;;;;;;;;;;;;;:::o;17423:84::-;17497:7;;;;;;;;;;;;-1:-1:-1;;;17497:7:0;;;;17423:84;:::o;12675:34::-;;;;:::o;23679:105::-;3486:19;3494:10;3486:7;:19::i;:::-;3478:38;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;;;;23751:10:::1;:25:::0;23679:105::o;29302:136::-;3576:24;3589:10;3576:12;:24::i;:::-;3568:48;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;;;;29392:6:::1;29386:3;:12;29378:21;;;::::0;::::1;;29410:14;:20:::0;29302:136::o;12996:39::-;;;;:::o;13499:19::-;;;-1:-1:-1;;;;;13499:19:0;;:::o;18327:156::-;18407:4;18431:44;18445:10;18457:9;18468:6;18431:13;:44::i;30140:114::-;30194:7;30221:25;30241:4;;30221:15;;:19;;:25;;;;:::i;3635:94::-;3486:19;3494:10;3486:7;:19::i;:::-;3478:38;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3695:19:0::1;;::::0;;;3717:4:::1;3695:19;::::0;;;;;;;:26;;-1:-1:-1;;3695:26:0::1;::::0;;::::1;::::0;;3635:94::o;30567:170::-;3486:19;3494:10;3486:7;:19::i;:::-;3478:38;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;;;;30682:47:::1;30704:24:::0;30682:17:::1;30694:4;14282:22:::0;-1:-1:-1;;14630:38:0::1;::::0;30682:47:::1;30667:12;:62:::0;-1:-1:-1;30567:170:0:o;13178:29::-;;;;:::o;13606:38::-;;;-1:-1:-1;;;;;13606:38:0;;:::o;24080:211::-;3486:19;3494:10;3486:7;:19::i;:::-;3478:38;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;;;;24184:9:::1;24179:105;24195:20:::0;;::::1;24179:105;;;24266:6;24237:12;:26;24250:9;;24260:1;24250:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;24250:12:0::1;24237:26:::0;;-1:-1:-1;24237:26:0;::::1;::::0;;;;;;-1:-1:-1;24237:26:0;:35;;-1:-1:-1;;24237:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;24217:3:0::1;24179:105;;13261:36:::0;;;-1:-1:-1;;;;;13261:36:0;;:::o;29805:167::-;29873:7;29900:64;29941:22;:20;:22::i;:::-;29923:4;;29900:36;;29913:22;;29933:1;;29913:15;;-1:-1:-1;;;;;29923:4:0;29913:9;:15::i;:22::-;29900:8;;:12;:36::i;27799:297::-;3576:24;3589:10;3576:12;:24::i;:::-;3568:48;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;;;;27944:21:::1;:46:::0;;-1:-1:-1;;;;;27944:46:0;;::::1;-1:-1:-1::0;;;;;;27944:46:0;;::::1;;::::0;;;28001:20:::1;:44:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;28056:14:::1;:32:::0;;;;;::::1;::::0;::::1;;::::0;;27799:297::o;13346:29::-;;;-1:-1:-1;;;;;13346:29:0;;:::o;17826:133::-;-1:-1:-1;;;;;17928:19:0;;;17910:7;17928:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;17826:133::o;28106:205::-;3576:24;3589:10;3576:12;:24::i;:::-;3568:48;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;;;;28211:11:::1;:22:::0;;-1:-1:-1;;28211:22:0::1;::::0;::::1;;;::::0;;28260:43:::1;28282:20:::0;28260:17:::1;28272:4;14282:22:::0;-1:-1:-1;;14630:38:0::1;::::0;28260:43:::1;28244:13;:59:::0;-1:-1:-1;;28106:205:0:o;13304:35::-;;;-1:-1:-1;;;;;13304:35:0;;:::o;23263:121::-;3486:19;3494:10;3486:7;:19::i;:::-;3478:38;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;;;;23341:14:::1;:27:::0;23263:121::o;13958:21::-;;;;;;-1:-1:-1;;;;;13958:21:0;;:::o;3737:97::-;3486:19;3494:10;3486:7;:19::i;:::-;3478:38;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3799:19:0::1;3821:5;3799:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;3799:27:0::1;::::0;;3737:97::o;4068:173::-;3486:19;3494:10;3486:7;:19::i;:::-;3478:38;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;;;;4144:5:::1;:11:::0;;-1:-1:-1;;;;;;4144:11:0::1;-1:-1:-1::0;;;;;4144:11:0;::::1;::::0;;::::1;::::0;;4166:19;;;-1:-1:-1;4166:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;4166:26:0::1;::::0;;::::1;::::0;;;4208:25;;;;;;;::::1;::::0;;;;;;;;;::::1;4068:173:::0;:::o;26508:347::-;3576:24;3589:10;3576:12;:24::i;:::-;3568:48;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;26605:23:0;::::1;26623:4;26605:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;26642:4:0::1;::::0;-1:-1:-1;;;;;26632:14:0;;::::1;26642:4:::0;::::1;26632:14;;26605:41;26597:50;;;::::0;::::1;;-1:-1:-1::0;;;;;26658:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;26658:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;26702:146:::1;;26727:11;::::0;:31:::1;::::0;;-1:-1:-1;;;26727:31:0;;-1:-1:-1;;;;;26727:31:0;;::::1;;::::0;::::1;::::0;:11:::1;:31:::0;;;;;;;;:11;::::1;::::0;:20:::1;::::0;:31;;;;;:11;;:31;;;;;;:11;;:31;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;26702:146;;;26789:11;::::0;-1:-1:-1;;;;;26789:11:0::1;:20;26810:6:::0;26818:17:::1;26810:6:::0;26818:9:::1;:17::i;:::-;26789:47;;;;;;;;;;;;;-1:-1:-1::0;;;;;26789:47:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;26999:128:::0;3576:24;3589:10;3576:12;:24::i;:::-;3568:48;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;-1:-1:-1;;;3568:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;27087:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;27087:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26999:128::o;13468:24::-;;;-1:-1:-1;;;;;13468:24:0;;:::o;13142:29::-;;;;:::o;23938:134::-;3486:19;3494:10;3486:7;:19::i;:::-;3478:38;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;;;;24059:5:::1;24036:28;24022:11;:42:::0;23938:134::o;3953:107::-;-1:-1:-1;;;;;4033:19:0;4009:4;4033:19;;;:14;:19;;;;;;;;;3953:107::o;13216:36::-;;;;:::o;23814:116::-;3486:19;3494:10;3486:7;:19::i;:::-;3478:38;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;-1:-1:-1;;;3478:38:0;;;;;;;;;;;;;;;23893:19:::1;:29:::0;;-1:-1:-1;;23893:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23814:116::o;13566:31::-;;;-1:-1:-1;;;13566:31:0;;;;;:::o;878:132::-;936:7;963:39;967:1;970;963:39;;;;;;;;;;;;;;;;;:3;:39::i;622:250::-;680:7;704:6;700:47;;-1:-1:-1;734:1:0;727:8;;700:47;771:5;;;775:1;771;:5;:1;795:5;;;;;:10;787:56;;;;-1:-1:-1;;;787:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;95:181;153:7;185:5;;;209:6;;;;201:46;;;;;-1:-1:-1;;;201:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;21242:388;21335:4;21352:15;21370:16;21381:4;;21370:6;:10;;:16;;;;:::i;:::-;21352:34;;21417:54;21439:7;21417:54;;;;;;;;;;;;;-1:-1:-1;;;21417:54:0;;;:9;:17;21427:6;-1:-1:-1;;;;;21417:17:0;-1:-1:-1;;;;;21417:17:0;;;;;;;;;;;;;:21;;:54;;;;;:::i;:::-;-1:-1:-1;;;;;21397:17:0;;;;;;;:9;:17;;;;;;:74;;;;21505:20;;;;;;;:33;;21530:7;21505:24;:33::i;:::-;-1:-1:-1;;;;;21482:20:0;;;;;;;:9;:20;;;;;:56;;;;21594:4;;21554:46;;;;;;21582:17;;:7;;:11;:17::i;:::-;21554:46;;;;;;;;;;;;;;;-1:-1:-1;21618:4:0;;21242:388;-1:-1:-1;;;;21242:388:0:o;424:192::-;510:7;546:12;538:6;;;;530:29;;;;-1:-1:-1;;;530:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;582:5:0;;;424:192::o;18863:2345::-;18975:6;;18955:4;;18975:6;;;;;18972:63;;;18991:41;19006:6;19014:9;19025:6;18991:14;:41::i;:::-;18984:48;;;;18972:63;-1:-1:-1;;;;;19051:22:0;;;;;;:14;:22;;;;;;;;19050:23;:53;;;;-1:-1:-1;;;;;;19078:25:0;;;;;;:14;:25;;;;;;;;19077:26;19050:53;19047:127;;;19127:11;;-1:-1:-1;;;19127:11:0;;;;19119:43;;;;;-1:-1:-1;;;19119:43:0;;;;;;;;;;;;-1:-1:-1;;;19119:43:0;;;;;;;;;;;;;;;19186:15;19204:16;19215:4;;19204:6;:10;;:16;;;;:::i;:::-;-1:-1:-1;;;;;19238:22:0;;;;;;:14;:22;;;;;;19186:34;;-1:-1:-1;19238:22:0;;19237:23;:53;;;;-1:-1:-1;;;;;;19264:26:0;;19285:4;19264:26;;19237:53;:84;;;;-1:-1:-1;19316:4:0;;-1:-1:-1;;;;;19295:26:0;;;19316:4;;19295:26;;19237:84;:105;;;;-1:-1:-1;19338:4:0;;-1:-1:-1;;;;;19325:17:0;;;19338:4;;19325:17;;19237:105;:142;;;;-1:-1:-1;19359:20:0;;-1:-1:-1;;;;;19346:33:0;;;19359:20;;19346:33;;19237:142;:173;;;;-1:-1:-1;19396:14:0;;-1:-1:-1;;;;;19383:27:0;;;19396:14;;19383:27;;19237:173;:212;;;;-1:-1:-1;19428:21:0;;-1:-1:-1;;;;;19415:34:0;;;19428:21;;19415:34;;19237:212;19233:405;;;19465:18;19486:20;19496:9;19486;:20::i;:::-;19465:41;;19555:15;;19543:7;19530:10;:20;19529:41;;19521:115;;;;-1:-1:-1;;;19521:115:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19233:405;;19672:4;;-1:-1:-1;;;;;19662:14:0;;;19672:4;;19662:14;:49;;;;-1:-1:-1;19693:18:0;;;;19662:49;:94;;;;-1:-1:-1;;;;;;19729:27:0;;;;;;:16;:27;;;;;;;;19728:28;19662:94;19658:281;;;-1:-1:-1;;;;;19781:24:0;;;;;;:13;:24;;;;;;19808:15;-1:-1:-1;19773:73:0;;;;;-1:-1:-1;;;19773:73:0;;;;;;;;;;;;-1:-1:-1;;;19773:73:0;;;;;;;;;;;;;;;19906:21;;-1:-1:-1;;;;;19861:24:0;;;;;;:13;:24;;;;;19906:21;;;;;;19888:15;:39;19861:66;;19658:281;19993:19;;;;19990:288;;;-1:-1:-1;;;;;20037:20:0;;;;;;:12;:20;;;;;;;;20036:21;20028:47;;;;;-1:-1:-1;;;20028:47:0;;;;;;;;;;;;-1:-1:-1;;;20028:47:0;;;;;;;;;;;;;;;20107:11;;20093;:25;:43;;;;-1:-1:-1;20132:4:0;;-1:-1:-1;;;;;20122:14:0;;;20132:4;;20122:14;20093:43;20090:177;;;-1:-1:-1;;;;;20156:23:0;;;;;;:12;:23;;;;;;;;;:30;;-1:-1:-1;;20156:30:0;20182:4;20156:30;;;20210:41;;;;;20239:11;20210:41;;;;;;;;;;;;;;;;20090:177;20331:29;20344:6;20352:7;20331:12;:29::i;:::-;20376:16;:14;:16::i;:::-;20373:35;;;20395:10;:8;:10::i;:::-;20467:54;;;;;;;;;;;-1:-1:-1;;;20467:54:0;;;;;;;;-1:-1:-1;;;;;20467:17:0;;-1:-1:-1;20467:17:0;;;:9;:17;;;;;;;;:54;;20489:7;;20467:21;:54::i;:::-;-1:-1:-1;;;;;20447:17:0;;;;;;:9;:17;;;;;:74;;;;20561:21;20457:6;20561:13;:21::i;:::-;20560:22;:51;;;;20587:24;20601:9;20587:13;:24::i;:::-;20586:25;20560:51;20559:110;;20663:4;;20625:44;;20633:6;;20641:7;;-1:-1:-1;;;;;20650:17:0;;;20663:4;;20650:17;20625:7;:44::i;:::-;20559:110;;;20615:7;20559:110;-1:-1:-1;;;;;20703:20:0;;;;;;:9;:20;;;;;;20534:135;;-1:-1:-1;20703:40:0;;20534:135;20703:24;:40::i;:::-;-1:-1:-1;;;;;20680:20:0;;;;;;;:9;:20;;;;;;;;:63;;;;20789:24;;;;;:16;:24;;;;;;;20785:119;;20834:11;;-1:-1:-1;;;;;20834:11:0;:20;20855:6;20863:17;20855:6;20863:9;:17::i;:::-;20834:47;;;;;;;;;;;;;-1:-1:-1;;;;;20834:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20830:63;;-1:-1:-1;;;;;20920:27:0;;;;;;:16;:27;;;;;;;;20916:129;;20968:11;;-1:-1:-1;;;;;20968:11:0;:20;20989:9;21000:20;20989:9;21000;:20::i;:::-;20968:53;;;;;;;;;;;;;-1:-1:-1;;;;;20968:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20964:69;;21061:11;;21081:14;;21061:35;;;-1:-1:-1;;;;;;21061:35:0;;;;;;;;;;-1:-1:-1;;;;;21061:11:0;;;;:19;;:35;;;;;:11;;:35;;;;;;;;:11;;:35;;;;;;;;;;;;;;;;;;;;;;;;;21057:51;21142:9;-1:-1:-1;;;;;21125:53:0;21134:6;-1:-1:-1;;;;;21125:53:0;;21153:24;21172:4;;21153:14;:18;;:24;;;;:::i;:::-;21125:53;;;;;;;;;;;;;;;-1:-1:-1;21196:4:0;;18863:2345;-1:-1:-1;;;;;18863:2345:0:o;282:136::-;340:7;367:43;371:1;374;367:43;;;;;;;;;;;;;;;;;:3;:43::i;1364:239::-;1420:6;1450:5;;;-1:-1:-1;;;1476:15:0;;;;:55;;-1:-1:-1;;;;1496:14:0;;;1516;;;1495:36;;1476:55;1468:64;;;;;;1552:6;;;1551:24;;;1573:1;1568;1564;:5;;;;;;:10;1551:24;1543:33;;;;;1016:189;1102:7;1137:12;1130:5;1122:28;;;;-1:-1:-1;;;1122:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1161:9;1177:1;1173;:5;;;;;;;1016:189;-1:-1:-1;;;;;1016:189:0:o;21638:168::-;21737:12;;21726:7;:23;;:50;;;-1:-1:-1;;;;;;21753:23:0;;;;;;:15;:23;;;;;;;;21726:50;21718:80;;;;;-1:-1:-1;;;21718:80:0;;;;;;;;;;;;-1:-1:-1;;;21718:80:0;;;;;;;;;;;;;;22583:197;22670:4;;22632;;-1:-1:-1;;;;;22670:4:0;22656:10;:18;;;;:38;;-1:-1:-1;22688:6:0;;;;;;;22687:7;22656:38;:62;;;;-1:-1:-1;22707:11:0;;;;22656:62;:116;;;;-1:-1:-1;;22759:13:0;;22749:4;22731:24;;;;:9;:24;;;;;;:41;;;22583:197::o;24491:1997::-;13915:6;:13;;-1:-1:-1;;13915:13:0;;;;;24586:15:::1;::::0;24603:26:::1;::::0;13915:13;;24570:60:::1;::::0;:15:::1;:60::i;:::-;:79;;24637:12;;24570:79;;;24633:1;24570:79;24540:109;;24660:20;24683:23;24701:4;;24683:13;;:17;;:23;;;;:::i;:::-;24660:46;;24719:23;24745:58;24801:1;24745:51;24776:19;24745:26;24762:8;;24745:12;:16;;:26;;;;:::i;:58::-;24719:84:::0;-1:-1:-1;24814:20:0::1;24837:33;:12:::0;24719:84;24837:16:::1;:33::i;:::-;24907:16;::::0;;24921:1:::1;24907:16:::0;;;;;::::1;::::0;;24814:56;;-1:-1:-1;24883:21:0::1;::::0;24907:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;24907:16:0::1;24883:40;;24952:4;24934;24939:1;24934:7;;;;;;;;-1:-1:-1::0;;;;;24934:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;24978:4:::1;::::0;24968:7;;24978:4;::::1;::::0;24968;;24978;;24968:7;::::1;;;;;-1:-1:-1::0;;;;;24968:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:14;;;;25053:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;25053:188:0;;::::1;::::0;::::1;::::0;;;24995:21:::1;25053:188:::0;;;;;;25195:4:::1;25053:188:::0;;;;;;25215:15:::1;25053:188:::0;;;;;;;;;;;;;;;;;;;;;25019:21:::1;::::0;25053:6;;;::::1;::::0;:57:::1;::::0;25125:12;;24995:21;;25168:4;;25053:188;;;;;;;;;;::::1;::::0;::::1;::::0;;;24995:21;25053:188:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25254:17;25274:40;25300:13;25274:21;:25;;:40;;;;:::i;:::-;25254:60:::0;-1:-1:-1;25327:19:0::1;25349:40;25362:26;:19:::0;25386:1:::1;25362:23;:26::i;:::-;25349:8;::::0;;:12:::1;:40::i;:::-;25327:62:::0;-1:-1:-1;25410:26:0::1;25439:58;25495:1;25439:51;25327:62:::0;25439:51;:9;25453:19;25439:13:::1;:34::i;:58::-;25410:87;;25508:27;25538:45;25571:11;25538:28;25552:13;;25538:9;:13;;:28;;;;:::i;:45::-;25508:75;;25594:26;25623:44;25655:11;25623:27;25637:12;;25623:9;:13;;:27;;;;:::i;:44::-;25594:73;;25678:20;25701:38;25727:11;25701:21;25715:6;;25701:9;:13;;:21;;;;:::i;:38::-;25678:61;;25756:11;;;;;;;;;-1:-1:-1::0;;;;;25756:11:0::1;-1:-1:-1::0;;;;;25756:19:0::1;;25783;25756:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;25752:65:::0;25856:20:::1;::::0;25848:77:::1;::::0;25828:15:::1;::::0;-1:-1:-1;;;;;25856:20:0::1;::::0;25915:5:::1;::::0;25890:18;;25828:15;25848:77;25828:15;25848:77;25890:18;25856:20;25915:5;25848:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;25960:14:0::1;::::0;25952:65:::1;::::0;25827:98;;-1:-1:-1;;;;;;25960:14:0::1;::::0;26007:5:::1;::::0;25988:12;;25960:14:::1;25952:65:::0;25960:14;25952:65;25988:12;25960:14;26007:5;25952:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;26091:5:0::1;::::0;-1:-1:-1;;26112:19:0;;;-1:-1:-1;26109:372:0::1;;26147:6;::::0;26321:21:::1;::::0;26147:244:::1;::::0;;-1:-1:-1;;;26147:244:0;;26223:4:::1;26147:244;::::0;::::1;::::0;;;;;;;:6:::1;:244:::0;;;;;;;;;;-1:-1:-1;;;;;26321:21:0;;::::1;26147:244:::0;;;;26361:15:::1;26147:244:::0;;;;;;:6;;;::::1;::::0;:22:::1;::::0;26177:18;;26147:244;;;;;::::1;::::0;;;;;;;;;26177:18;26147:6;:244;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;26463:4:0::1;::::0;26411:58:::1;::::0;26423:18;;26443:25:::1;::::0;:15;;:19:::1;:25::i;:::-;26411:58;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;::::1;26109:372;-1:-1:-1::0;;13933:6:0;:14;;-1:-1:-1;;13933:14:0;;;-1:-1:-1;;;;;;;;;;;24491:1997:0:o;21814:114::-;-1:-1:-1;;;;;21901:19:0;21876:4;21901:19;;;:11;:19;;;;;;;;21900:20;;21814:114::o;21938:633::-;22019:7;22070:3;22084:64;;;;-1:-1:-1;22122:14:0;;22084:64;22161:17;22181:63;22233:10;22181:47;22219:8;;22181:33;22193:14;;22210:3;22193:20;22181:7;:11;;:33;;;;:::i;:63::-;22161:83;;22261:6;22260:7;:51;;;;;22299:12;22285:10;;22272;;:23;22271:40;22260:51;22257:118;;;22339:24;22360:2;22339:16;:7;22351:3;22339:11;:16::i;:24::-;22327:36;;22257:118;22432:4;22414:24;;;;:9;:24;;;;;;:39;;22443:9;22414:28;:39::i;:::-;22405:4;22387:24;;;;:9;:24;;;;;:66;;;;22515:4;;-1:-1:-1;;;;;22469:52:0;;;;;22501:19;;:9;;:13;:19::i;:::-;22469:52;;;;;;;;;;;;;;;22541:22;:7;22553:9;22541:11;:22::i;:::-;22534:29;21938:633;-1:-1:-1;;;;;;21938:633:0:o

Swarm Source

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