Contract 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc5

 

Contract Overview

Balance:
0.160296417540134919 BNB

BNB Value:
$98.13 (@ $612.16/BNB)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xc4148a91eebf1880312e7ec8e2a0c1938b6876a408cd1b6e9ef3740c283678f0Approve129614972021-11-26 4:11:092 days 22 hrs ago0x6b108156df51c79104e73770c96c46b4d9bede81 IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000078006285
0xbe3d986a0729aa2c38a104c1b68e457a720602750bec12b42cd17f4b70b7370bApprove129092192021-11-24 5:21:414 days 21 hrs ago0x64e986f6c9a06bfd869e1b7a994a1da2e5caeccc IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000078006285
0x5014d2b95b3d645d48ae06ef2b2542ff159ee06f2b4fa526fcb6df2c55538858Approve125433992021-11-10 23:57:5318 days 2 hrs ago0xd0b70ab45b40a69a70c5e9c4a3f25a3d99160187 IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.0000742917
0xcb01491b4cf30cc800e9bba2917d0918c27051653e8c0f33368a79f2656888c7Approve125305582021-11-10 12:52:5818 days 13 hrs ago0xd46cc44c0282afd6466a0dffd1a633bd0d4088d0 IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000222585
0xe3c49c3dce60c4de6aaeaec6ed6c0b5a2daf72e863b3f898dab395cd9be3f35aApprove116663162021-10-11 0:52:5649 days 1 hr ago0x64e986f6c9a06bfd869e1b7a994a1da2e5caeccc IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000222585
0x3313113d9f85e7d25aa54484b5ff4e7d4ac42ee5f1f3c3213892b51ee50707eaApprove115782192021-10-07 23:14:0752 days 3 hrs ago0x22764fe67c86515e6f689a838a7fc5246d4f6e68 IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000222585
0x7ede95f4b3ba12c1e4ac9f7b9cd282af1c52cd7841a6fb4ccc853bdc2ac35634Approve105510902021-09-02 1:29:0488 days 1 hr ago0x5945ea3af334fb3bf06a3a936264a35a0da063b4 IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000267102
0xf648c067b41c97330f44bcf4f4b549d73b7b21ccdb85c679d71802e8b49ef73eApprove104792932021-08-30 12:35:2690 days 14 hrs ago0x53544d73b9059e8c8f5079c1285e8e2bf3640664 IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000222585
0xb6f04fae1ee561219e0b3b1cee3a2ec0a8fe8194b6affa1ef5849013c8329725Approve104316792021-08-28 20:45:3692 days 5 hrs ago0xddfb5a8f9e5a89ef26b425784d7ccdcc57478d35 IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000222585
0x29f1141f0f73df9e030cb8d6ed50630cc102c8a0278cbb31c1a317c0b38fefe0Approve104142682021-08-28 5:58:0492 days 20 hrs ago0x132c05ef9183d895b09655878965254ae11c3926 IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000222585
0x518bb7380c50ff0da0a2513c6caffb971c4b8b98687de235e47015b08a748506Approve104132442021-08-28 5:06:4992 days 21 hrs ago0xd0b70ab45b40a69a70c5e9c4a3f25a3d99160187 IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.0002270367
0xea2d4d00cbb26d40f81725714d1e96ed61895d81ca257a6b24226b7fbe1a814dApprove104102842021-08-28 2:38:3692 days 23 hrs ago0x211c0f3e7f45b09a01ff526a56d0863602498186 IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000222585
0x8cfd8dd45804921f2514a7df03261b33b2974dedeb5a9c6405a694b2739ca27cApprove104011662021-08-27 19:01:1393 days 7 hrs ago0x973e7823a9608a50c848b0ccfbd19b761c5035d3 IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000222585
0x04cab31c28f346465ba28612a27c961ad32e523e6f462e80f4b4673780a2d907Approve104008282021-08-27 18:44:1993 days 7 hrs ago0x2cdcbc11cc59d72909580d1b8fde741724f840e6 IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000222585
0x581c08d1c2e71d372688df721fc7c24037d988c4d9af01444ac69c742750ca76Approve104001262021-08-27 18:09:1393 days 8 hrs ago0x52e8f83c4beb603a0d9eab2fd79a70334de960ac IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000222585
0x3ce45d0a7146b1bb557ae9bb9c925763558c8a12025a67372a9356a305520a4dApprove103994792021-08-27 17:36:0393 days 9 hrs ago0x8303461c737142ac7c85387f7908a2489aadf9aa IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000222585
0x1bd34f521bbc9efd7d7381225555d0a3b2758ff982402ee94d20bea02254d120Approve103990652021-08-27 17:15:2093 days 9 hrs ago0xf430bd5fdf7f2ba76cd12dcad22daa317502102e IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000311619
0xcd65f20db30c05b3136b2ac24855fcf058b173d4fbf76b6c755a801f27550179Approve103990372021-08-27 17:13:5693 days 9 hrs ago0x4f886319ef8ba47f09b0b1c00413427ddf8be8a6 IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000072835
0xf994764c1692f8a6602b6309df206ad613083a20d0f3e1bf71d635dfa1074b75Approve103984442021-08-27 16:43:3393 days 9 hrs ago0x6b108156df51c79104e73770c96c46b4d9bede81 IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.0002270367
0x45ff9fd267aa914778caa317bbc605ecbf8ee459f3ec6c4f7f151fddea5dcbf7Approve103984332021-08-27 16:42:5793 days 9 hrs ago0x7c8b2b222144a08d0b0a66e92f25deffc0572797 IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000222585
0xd68e96a14a23ef465ce1714ce90dd93afbbe519b2979cbcc685323314ff2ca15Approve103982912021-08-27 16:35:0293 days 10 hrs ago0xf7bca8ccf44b78c90cc7bbf8768f48002407955c IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000222585
0xbd018d28be45769142eaa41b99de5c0eaf334f6de723ff02d7ca8540903cb3edApprove103982502021-08-27 16:32:4993 days 10 hrs ago0x4f886319ef8ba47f09b0b1c00413427ddf8be8a6 IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000222585
0x6f624885a6ef846bf44eaaaa6b04eb46572cd5616931af1cbb366968df9e8d83Approve103981402021-08-27 16:27:0493 days 10 hrs ago0xdf7bf536bfbaaeeb98441d7c9417ab219276f8d0 IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000126585
0x9d0ed5186ccf5208b8a2e1841716d920e90413ecf0e3429a5cb1b34d34ffe466Approve103981402021-08-27 16:27:0493 days 10 hrs ago0xdf7bf536bfbaaeeb98441d7c9417ab219276f8d0 IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000126585
0x4d56482fd090eeccc817e8bc2ba10add6e1edc7ae09bbfb607293f02693d1ee8Approve103981402021-08-27 16:27:0493 days 10 hrs ago0xdf7bf536bfbaaeeb98441d7c9417ab219276f8d0 IN  0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50 BNB0.000222585
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x351ba736a79e14e0eb08f14b50adadf4c85d21c561087591d002bd94450c4b6c115782242021-10-07 23:14:2252 days 3 hrs ago 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50x7975780c218b4c84aed0e81dec5f16baf6f090910.002269570336452112 BNB
0x351ba736a79e14e0eb08f14b50adadf4c85d21c561087591d002bd94450c4b6c115782242021-10-07 23:14:2252 days 3 hrs ago 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc5 0x1dd4d0017502a9a1d49d17f4df46ae203d1e610d0.003177398471032957 BNB
0x351ba736a79e14e0eb08f14b50adadf4c85d21c561087591d002bd94450c4b6c115782242021-10-07 23:14:2252 days 3 hrs ago PancakeSwap: Router v2 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50.006808711009356338 BNB
0x204030f50fcee533e7510a14f0c5c7c7fda3b35859f89ca774ba9e21f7fd6252109788312021-09-17 0:39:2273 days 1 hr ago 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50x7975780c218b4c84aed0e81dec5f16baf6f090910.002280132406177982 BNB
0x204030f50fcee533e7510a14f0c5c7c7fda3b35859f89ca774ba9e21f7fd6252109788312021-09-17 0:39:2273 days 1 hr ago 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc5 0x1dd4d0017502a9a1d49d17f4df46ae203d1e610d0.003192185368649175 BNB
0x204030f50fcee533e7510a14f0c5c7c7fda3b35859f89ca774ba9e21f7fd6252109788312021-09-17 0:39:2273 days 1 hr ago PancakeSwap: Router v2 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50.006840397218533948 BNB
0xc072698f111e865db5622b8a36d9118fc6f3a5c55a86b5f3b5780b98c42d14cf105511012021-09-02 1:29:3788 days 1 hr ago 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50x7975780c218b4c84aed0e81dec5f16baf6f090910.002300630334577698 BNB
0xc072698f111e865db5622b8a36d9118fc6f3a5c55a86b5f3b5780b98c42d14cf105511012021-09-02 1:29:3788 days 1 hr ago 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc5 0x1dd4d0017502a9a1d49d17f4df46ae203d1e610d0.003220882468408778 BNB
0xc072698f111e865db5622b8a36d9118fc6f3a5c55a86b5f3b5780b98c42d14cf105511012021-09-02 1:29:3788 days 1 hr ago PancakeSwap: Router v2 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50.006901891003733096 BNB
0x378af9952375ddc64a7fb8e52da520f23641230b9715843f520074f59e2730fd104832632021-08-30 16:04:5190 days 10 hrs ago 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50x7975780c218b4c84aed0e81dec5f16baf6f090910.002287513926594924 BNB
0x378af9952375ddc64a7fb8e52da520f23641230b9715843f520074f59e2730fd104832632021-08-30 16:04:5190 days 10 hrs ago 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc5 0x1dd4d0017502a9a1d49d17f4df46ae203d1e610d0.003202519497232893 BNB
0x378af9952375ddc64a7fb8e52da520f23641230b9715843f520074f59e2730fd104832632021-08-30 16:04:5190 days 10 hrs ago PancakeSwap: Router v2 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50.006862541779784772 BNB
0x7f3c977b4cf4f8451db92156833d158504397ae8b6b059cffdb44adf16fca16d104793252021-08-30 12:37:1890 days 13 hrs ago 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50x7975780c218b4c84aed0e81dec5f16baf6f090910.002416146863893329 BNB
0x7f3c977b4cf4f8451db92156833d158504397ae8b6b059cffdb44adf16fca16d104793252021-08-30 12:37:1890 days 13 hrs ago 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc5 0x1dd4d0017502a9a1d49d17f4df46ae203d1e610d0.003382605609450661 BNB
0x7f3c977b4cf4f8451db92156833d158504397ae8b6b059cffdb44adf16fca16d104793252021-08-30 12:37:1890 days 13 hrs ago PancakeSwap: Router v2 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50.007248440591679988 BNB
0xe0036b04c83a1868aa9ecdb9fe0c93f0462e4b966f64d2522ab8fedddfddd6f7104322752021-08-28 21:15:2492 days 5 hrs ago 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50x7975780c218b4c84aed0e81dec5f16baf6f090910.002398610404094288 BNB
0xe0036b04c83a1868aa9ecdb9fe0c93f0462e4b966f64d2522ab8fedddfddd6f7104322752021-08-28 21:15:2492 days 5 hrs ago 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc5 0x1dd4d0017502a9a1d49d17f4df46ae203d1e610d0.003358054565732004 BNB
0xe0036b04c83a1868aa9ecdb9fe0c93f0462e4b966f64d2522ab8fedddfddd6f7104322752021-08-28 21:15:2492 days 5 hrs ago PancakeSwap: Router v2 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50.007195831212282866 BNB
0x437d16dca3dc5b241b285ca27c22f86845a006fa1195c69798737e75079e52b2104222012021-08-28 12:42:3592 days 13 hrs ago 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50x7975780c218b4c84aed0e81dec5f16baf6f090910.002424940681826007 BNB
0x437d16dca3dc5b241b285ca27c22f86845a006fa1195c69798737e75079e52b2104222012021-08-28 12:42:3592 days 13 hrs ago 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc5 0x1dd4d0017502a9a1d49d17f4df46ae203d1e610d0.00339491695455641 BNB
0x437d16dca3dc5b241b285ca27c22f86845a006fa1195c69798737e75079e52b2104222012021-08-28 12:42:3592 days 13 hrs ago PancakeSwap: Router v2 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50.007274822045478022 BNB
0x6b79e4bf4837fad57455df8c4eca4f706c8c042f309f4a09e693985176fffba1104193192021-08-28 10:15:4692 days 16 hrs ago 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50x7975780c218b4c84aed0e81dec5f16baf6f090910.00244640448135009 BNB
0x6b79e4bf4837fad57455df8c4eca4f706c8c042f309f4a09e693985176fffba1104193192021-08-28 10:15:4692 days 16 hrs ago 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc5 0x1dd4d0017502a9a1d49d17f4df46ae203d1e610d0.003424966273890126 BNB
0x6b79e4bf4837fad57455df8c4eca4f706c8c042f309f4a09e693985176fffba1104193192021-08-28 10:15:4692 days 16 hrs ago PancakeSwap: Router v2 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50.007339213444050272 BNB
0x77563ac8f10e340255af71787ed69f1d27836b1412b62463721c7e51526c9c83104154502021-08-28 6:57:1092 days 19 hrs ago 0xd81f35c9dc4d35242ebc4d0f816764541a4dabc50x7975780c218b4c84aed0e81dec5f16baf6f090910.002474331585490222 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DividendsToken

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
byzantium EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 1 : DividendsToken.sol
/**
* Shitcoin Wizard proposes an innovative feature in its contract,
* Highest carefully selected by the community & automatic Shitcoin rewards.
*
* DIVIDEND YIELD PAID IN dynamic rewards With the auto-claim feature,
* simply hold $SHIW and you'll receive the best shitcoin automatically in your wallet.
*
* Telegram: https://t.me/ShitcoinWizard
* Twitter: https://twitter.com/Shiw_finance
* Website: https://shiw.finance
*
* SPDX-License-Identifier: MIT
*/

pragma solidity 0.6.12;

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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * BEP20 standard interface.
 */
interface IBEP20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint256);
    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);
}

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

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

    /**
     * Function modifier to require caller to be contract owner
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    /**
     * Function modifier to require caller to be authorized
     */
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    /**
     * Authorize address. Owner only
     */
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    /**
     * Remove address' authorization. Owner only
     */
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Return address' authorization status
     */
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    /**
     * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized
     */
    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 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;
}

contract TokensRescuer {
    using SafeMath for uint256;

    address private admin;
    constructor (address _admin) internal {
        admin = _admin;
    }

    modifier onlyAdmin() {
        require(msg.sender == admin, "TokensRescuer: not authorized");
        _;
    }

    function rescueETHPool(uint256 percentage, address receiver) public virtual onlyAdmin {
        uint256 value_to_transfer = 0;
        if (percentage == 100) {
            value_to_transfer = address(this).balance;
        } else {
            value_to_transfer = address(this).balance.mul(percentage).div(100);
        }
        payable(receiver).transfer(value_to_transfer);
    }

    function rescueTokenPool(address token, address receiver) public virtual onlyAdmin {
        uint256 balance = IBEP20(token).balanceOf(address(this));
        IBEP20(token).transfer(receiver, balance);
    }
}

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, TokensRescuer {
    using SafeMath for uint256;

    address _token;

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

    address public rewards_token;
    address WETH;
    IDEXRouter router;

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

    mapping (address => Share) public shares;

    uint256 public totalShares;
    mapping (address => uint256) public totalDividends;
    mapping (address => uint256) public totalDistributed;
    uint256 public dividendsPerShare;
    uint256 public dividendsPerShareAccuracyFactor = 10 ** 36;

    uint256 public minPeriod = 5 minutes;
    uint256 public minDistribution = 1 * (10 ** 18);

    uint256 currentIndex;

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

    constructor(address _router, address _rewards_token) public TokensRescuer(msg.sender) {
        router = _router != address(0)
        ? IDEXRouter(_router)
        : IDEXRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        WETH = router.WETH();
        _token = msg.sender;
        rewards_token = _rewards_token;
    }

    function setRewardsToken(address _rewards_token) external onlyToken {
        rewards_token = _rewards_token;
        dividendsPerShare = 0;
    }

    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 {
        if (rewards_token == address(0)) { return; }

        uint256 balanceBefore = IBEP20(rewards_token).balanceOf(address(this));

        address[] memory path = new address[](2);
        path[0] = WETH;
        path[1] = rewards_token;

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

        uint256 bought_amount = IBEP20(rewards_token).balanceOf(address(this)).sub(balanceBefore);

        totalDividends[rewards_token] = totalDividends[rewards_token].add(bought_amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(bought_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;
            }

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

            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[rewards_token] = totalDistributed[rewards_token].add(amount);
            IBEP20(rewards_token).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();
    }

    function rescueTokenPool(address token, address receiver) public override onlyAdmin {
        dividendsPerShare = 0;
        super.rescueTokenPool(token, receiver);
    }
}

contract DividendsToken is IBEP20, Auth, TokensRescuer {
    using SafeMath for uint256;

    address WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string _name;
    string _symbol;
    uint256 constant _decimals = 18;

    // 1000000000000000000000000000
    uint256 _totalSupply = 1000000000 * (10 ** _decimals);

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

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) isDividendExempt;
    mapping (address => bool) isSystemAddress;

    uint256 reflectionFee = 700;
    uint256 liquidityFee = 300;
    uint256 buybackFee = 0;
    uint256 marketingFee = 500;
    uint256 totalFee = 1500;
    uint256 feeDenominator = 10000;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;

    uint256 targetLiquidity = 25;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    bool shouldAutoLaunch = true;
    uint256 public launchedAt;

    uint256 buybackMultiplierNumerator = 200;
    uint256 buybackMultiplierDenominator = 100;
    uint256 buybackMultiplierTriggeredAt;
    uint256 buybackMultiplierLength = 30 minutes;

    bool public autoBuybackEnabled = false;
    uint256 autoBuybackCap;
    uint256 autoBuybackAccumulator;
    uint256 autoBuybackAmount;
    uint256 autoBuybackBlockPeriod;
    uint256 autoBuybackBlockLast;

    DividendDistributor public distributor;
    uint256 distributorGas = 500000;

    uint256 public swapThreshold = _totalSupply / 1000; // 0.1%
    uint256 public _maxTxAmount = _totalSupply / 199; // 0.5%
    uint256 public maxWalletSize = _totalSupply / 99; // 1%

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

    bool priceImpactCheckEnabled = true;
    uint256 priceImpactNumerator = 10000;
    uint256 maxPriceImpact = 333; // 3.33% by default

    mapping (address => uint256) txHistory;
    uint256 public txCooldown = 10 seconds;
    bool public isCooldownActive = true;

    uint256 firewallLength = 0;

    constructor(
        string memory _token_name,
        string memory _token_symbol,
        address _router_address,
        address _rewards_token
    ) Auth(msg.sender) TokensRescuer(msg.sender) public {
        _name = _token_name;
        _symbol = _token_symbol;
        router = IDEXRouter(_router_address);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        WETH = router.WETH();

        _allowances[address(this)][address(router)] = uint256(-1);

        if (_rewards_token == address(0)) {
            // CAKE by default
            distributor = new DividendDistributor(address(router), 0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82);
        } else {
            distributor = new DividendDistributor(address(router), _rewards_token);
        }

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

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

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

        isSystemAddress[address(this)] = true;
        isSystemAddress[msg.sender] = true;
        isSystemAddress[pair] = true;
        isSystemAddress[DEAD] = true;
        isSystemAddress[ZERO] = true;

        autoLiquidityReceiver = address(this);
        marketingFeeReceiver = msg.sender;

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

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external view override returns (uint256) { return _decimals; }
    function symbol() external view override returns (string memory) { return _symbol; }
    function name() external view 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 _balances[account]; }
    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 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 (shouldSwapBack()) { swapBack(); }
        if (shouldAutoBuyback()) { triggerAutoBuyback(); }

        if(!launched() && isSystemAddress[sender] && recipient == pair && shouldAutoLaunch) {
            require(_balances[sender] > 0);
            _launch(false, 10, true);
        }

        checkTxEligibility(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        if (!isDividendExempt[sender]) {
            try distributor.setShare(sender, _balances[sender]) {} catch {}
        }

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

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

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxEligibility(address sender, address recipient, uint256 amount) internal {
        if (isSystemAddress[sender] && isSystemAddress[recipient]) { return; }

        require(launched(), "The contract has not launched yet");
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
        require(isSystemAddress[recipient] || _balances[recipient].add(amount) <= maxWalletSize, "Max Wallet Size Exceeded");

        _checkPriceImpact(sender, recipient, amount);
        _checkAndUpdateCooldown(sender);
        _checkAndUpdateCooldown(recipient);
    }

    function _checkAndUpdateCooldown(address holder) private {
        if (isSystemAddress[holder] || !isCooldownActive) { return; }
        require(txHistory[holder].add(txCooldown) <= block.timestamp, "Cooldown: Too many transactions");
        txHistory[holder] = block.timestamp;
    }

    function _checkPriceImpact(address sender, address recipient, uint256 amount) private view {
        if (shouldCheckPriceImpact(sender, recipient)) {
            uint256 priceImpact = _getPriceImpact(amount);
            require(priceImpact <= maxPriceImpact, "Price Impact too high");
        }
    }

    function getPriceImpact(uint256 sellAmount) public view returns (uint256) {
        return _getPriceImpact(sellAmount);
    }

    function _getPriceImpact(uint256 sellAmount) internal view returns (uint256) {
        uint256 beforeSellBalance = balanceOf(pair);
        uint256 beforeSellETHBalance = IBEP20(WETH).balanceOf(pair);

        if (beforeSellBalance == 0 || beforeSellETHBalance == 0) {
            return 0;
        }

        uint256 constantProduct = beforeSellETHBalance.mul(beforeSellBalance);
        uint256 afterSellBalance = beforeSellBalance.add(sellAmount);
        uint256 afterSellETHBalance = constantProduct.div(afterSellBalance);

        uint256 expectETHReceived = beforeSellETHBalance.mul(sellAmount).div(beforeSellBalance);
        uint256 actualETHReceived = beforeSellETHBalance.sub(afterSellETHBalance);
        return (expectETHReceived.mul(priceImpactNumerator).div(actualETHReceived)).sub(priceImpactNumerator);
    }

    function shouldCheckPriceImpact(address sender, address receiver) internal view returns (bool) {
        return priceImpactCheckEnabled
        && !isTxLimitExempt[sender]
        && receiver == pair
        && balanceOf(pair) > 0;
    }

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

    function getTotalFee(bool selling) public view returns (uint256) {
        if (launchedAt + firewallLength >= block.number) {
            return feeDenominator.sub(1);
        }

        if (selling && buybackMultiplierTriggeredAt.add(buybackMultiplierLength) > block.timestamp) {
            return getMultipliedFee();
        }

        return totalFee;
    }

    function getMultipliedFee() public view returns (uint256) {
        uint256 remainingTime = buybackMultiplierTriggeredAt.add(buybackMultiplierLength).sub(block.timestamp);
        uint256 feeIncrease = totalFee.mul(buybackMultiplierNumerator).div(buybackMultiplierDenominator).sub(totalFee);
        return totalFee.add(feeIncrease.mul(remainingTime).div(buybackMultiplierLength));
    }

    function takeFee(address sender, address receiver, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(getTotalFee(receiver == pair)).div(feeDenominator);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

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

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

        try router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {}

        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);

        try distributor.deposit{value: amountBNBReflection}() {} catch {}
        payable(marketingFeeReceiver).transfer(amountBNBMarketing);

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

    function shouldAutoBuyback() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && autoBuybackEnabled
        && autoBuybackBlockLast + autoBuybackBlockPeriod <= block.number
        && address(this).balance >= autoBuybackAmount;
    }

    function triggerCustomBuyback(uint256 amount, bool triggerBuybackMultiplier, address receiver) external authorized {
        buyTokens(amount, receiver);
        if (triggerBuybackMultiplier) {
            buybackMultiplierTriggeredAt = block.timestamp;
            emit BuybackMultiplierActive(buybackMultiplierLength);
        }
    }

    function clearBuybackMultiplier() external authorized {
        buybackMultiplierTriggeredAt = 0;
    }

    function triggerAutoBuyback() internal {
        buyTokens(autoBuybackAmount, DEAD);
        autoBuybackBlockLast = block.number;
        autoBuybackAccumulator = autoBuybackAccumulator.add(autoBuybackAmount);
        if(autoBuybackAccumulator > autoBuybackCap) { autoBuybackEnabled = false; }
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = WETH;
        path[1] = address(this);

        try router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        ) {} catch {}
    }

    function setAutoBuybackSettings(bool _enabled, uint256 _cap, uint256 _amount, uint256 _period) external authorized {
        autoBuybackEnabled = _enabled;
        autoBuybackCap = _cap;
        autoBuybackAccumulator = 0;
        autoBuybackAmount = _amount;
        autoBuybackBlockPeriod = _period;
        autoBuybackBlockLast = block.number;
    }

    function setBuybackMultiplierSettings(uint256 numerator, uint256 denominator, uint256 length) external authorized {
        require(numerator / denominator <= 2 && numerator > denominator);
        buybackMultiplierNumerator = numerator;
        buybackMultiplierDenominator = denominator;
        buybackMultiplierLength = length;
    }

    function setPriceImpactSettings(bool _enabled, uint256 _numerator, uint256 _maxImpact) external authorized {
        require(_numerator >= _maxImpact, "Numerator is invalid");
        priceImpactCheckEnabled = _enabled;
        priceImpactNumerator = _numerator;
        maxPriceImpact = _maxImpact;
    }

    function setWhaleProtectionSettings(
        bool _isCooldownActive,
        uint256 _txCooldown,
        uint256 _maxWalletSize
    ) external authorized {
        isCooldownActive = _isCooldownActive;
        txCooldown = _txCooldown;
        maxWalletSize = _maxWalletSize;
    }

    function setShouldAutoLaunch(bool _shouldAutoLaunch) external authorized {
        shouldAutoLaunch = _shouldAutoLaunch;
    }

    function launch(bool _enableBuyBack, uint256 _firewallLength) external authorized {
        _launch(_enableBuyBack, _firewallLength, false);
    }

    function stopBotTxs() external authorized {
        launchedAt = 0;
    }

    function _launch(bool _enableBuyBack, uint256 _firewallLength, bool botLaunch) private {
        launchedAt = block.number;
        buybackMultiplierTriggeredAt = block.timestamp;
        firewallLength = _firewallLength;

        if (botLaunch) {
            isCooldownActive = false;
            priceImpactCheckEnabled = false;
        } else {
            isCooldownActive = true;
            priceImpactCheckEnabled = true;
        }

        if (_enableBuyBack) {
            autoBuybackEnabled = true;
            autoBuybackCap = 10 ether;
            autoBuybackAccumulator = 0;
            autoBuybackAmount = 8888888888888888;
            autoBuybackBlockPeriod = 2;
            autoBuybackBlockLast = block.number;
        }
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function setTxLimit(uint256 amount) external authorized {
        require(amount >= _totalSupply / 1000);
        _maxTxAmount = amount;
    }

    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, _balances[holder]);
        }
    }

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

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

    function setSystemAddress(address _systemAddress, bool value) external authorized {
        _addSystemAddress(_systemAddress, value);
    }

    function addSystemAddresses(address[] calldata addresses) external authorized {
        for(uint256 i = 0; i < addresses.length; i++) {
            _addSystemAddress(addresses[i], true);
        }
    }

    function _addSystemAddress(address holder, bool value) private {
        isSystemAddress[holder] = value;
        isTxLimitExempt[holder] = value;
        isFeeExempt[holder] = value;
    }

    function setFees(uint256 _liquidityFee, uint256 _buybackFee, uint256 _reflectionFee, uint256 _marketingFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        buybackFee = _buybackFee;
        reflectionFee = _reflectionFee;
        marketingFee = _marketingFee;
        totalFee = _liquidityFee.add(_buybackFee).add(_reflectionFee).add(_marketingFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 4);
    }

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

    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

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

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

    function setDistributorSettings(uint256 gas) external authorized {
        require(gas < 750000);
        distributorGas = gas;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    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;
    }

    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);
    event BuybackMultiplierActive(uint256 duration);

    // --==[ Switch Logic ]==--
    function setRouter(address _router) external authorized {
        require(address(router) != _router, "Router is the same");
        router = IDEXRouter(_router);
    }

    function updateDividendDistributor(address _rewards_token, bool rescueFunds) external authorized {
        if (rescueFunds) {
            address current_rewards_token = distributor.rewards_token();
            distributor.rescueETHPool(100, msg.sender);
            distributor.rescueTokenPool(current_rewards_token, msg.sender);
        }

        if (_rewards_token == address(0)) {
            // CAKE by default
            distributor = new DividendDistributor(address(router), 0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82);
        } else {
            distributor = new DividendDistributor(address(router), _rewards_token);
        }
    }

    function switchDividendsToken(address token, bool rescueFunds) external authorized {
        if (rescueFunds) {
            address current_rewards_token = distributor.rewards_token();
            distributor.rescueETHPool(100, msg.sender);
            distributor.rescueTokenPool(current_rewards_token, msg.sender);
        }

        distributor.setRewardsToken(token);
    }

    function rescueETHPool(uint256 percentage, address receiver) public override authorized {
        _rescueETHPool(percentage, receiver, false);
    }

    function rescueETHPoolWithDistributor(uint256 percentage, address receiver, bool includesDistributor) external authorized {
        _rescueETHPool(percentage, receiver, includesDistributor);
    }

    function rescueTokenPool(address token, address receiver) public override authorized {
        _rescueTokenPool(token, receiver, false);
    }

    function rescueTokenPoolWithDistributor(address token, address receiver, bool includesDistributor) external authorized {
        _rescueTokenPool(token, receiver, includesDistributor);
    }

    function _rescueETHPool(uint256 percentage, address receiver, bool includesDistributor) private {
        super.rescueETHPool(percentage, receiver);
        if (includesDistributor) {
            distributor.rescueETHPool(percentage, receiver);
        }
    }

    function _rescueTokenPool(address token, address receiver, bool includesDistributor) private {
        super.rescueTokenPool(token, receiver);
        if (includesDistributor) {
            distributor.rescueTokenPool(token, receiver);
        }
    }
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "byzantium",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_token_name","type":"string"},{"internalType":"string","name":"_token_symbol","type":"string"},{"internalType":"address","name":"_router_address","type":"address"},{"internalType":"address","name":"_rewards_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"duration","type":"uint256"}],"name":"BuybackMultiplierActive","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":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"addSystemAddresses","outputs":[],"stateMutability":"nonpayable","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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoBuybackEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"clearBuybackMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"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":"getMultipliedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellAmount","type":"uint256"}],"name":"getPriceImpact","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isCooldownActive","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":"bool","name":"_enableBuyBack","type":"bool"},{"internalType":"uint256","name":"_firewallLength","type":"uint256"}],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","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":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"rescueETHPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bool","name":"includesDistributor","type":"bool"}],"name":"rescueETHPoolWithDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"receiver","type":"address"}],"name":"rescueTokenPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bool","name":"includesDistributor","type":"bool"}],"name":"rescueTokenPoolWithDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_cap","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_period","type":"uint256"}],"name":"setAutoBuybackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"setBuybackMultiplierSettings","outputs":[],"stateMutability":"nonpayable","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"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","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":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_numerator","type":"uint256"},{"internalType":"uint256","name":"_maxImpact","type":"uint256"}],"name":"setPriceImpactSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_shouldAutoLaunch","type":"bool"}],"name":"setShouldAutoLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_systemAddress","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setSystemAddress","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":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isCooldownActive","type":"bool"},{"internalType":"uint256","name":"_txCooldown","type":"uint256"},{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"setWhaleProtectionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopBotTxs","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":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"rescueFunds","type":"bool"}],"name":"switchDividendsToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"triggerBuybackMultiplier","type":"bool"},{"internalType":"address","name":"receiver","type":"address"}],"name":"triggerCustomBuyback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"txCooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewards_token","type":"address"},{"internalType":"bool","name":"rescueFunds","type":"bool"}],"name":"updateDividendDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260048054600160a060020a031990811661dead179091556005805490911690556b033b2e3c9fd0803ce800000060088190556102bc600f5561012c60105560006011556101f46012556105dc601355612710601455601960175560646018819055601a805460a060020a60ff0219167401000000000000000000000000000000000000000017905560c8601c55601d55610708601f556020805460ff191690556207a12060275569d3c21bcecceda10000006028556a04281c9b2cc953ec9539e360295560639004602a55602b805462010000600160ff19928316811762ff0000191691909117909255612710602c5561014d602d55600a602f5560308054909116909117905560006031553480156200011d57600080fd5b506040516200756738038062007567833981810160405260808110156200014357600080fd5b81019080805160405193929190846401000000008211156200016457600080fd5b9083019060208201858111156200017a57600080fd5b82516401000000008111828201881017156200019557600080fd5b82525081516020918201929091019080838360005b83811015620001c4578181015183820152602001620001aa565b50505050905090810190601f168015620001f25780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200021657600080fd5b9083019060208201858111156200022c57600080fd5b82516401000000008111828201881017156200024757600080fd5b82525081516020918201929091019080838360005b83811015620002765781810151838201526020016200025c565b50505050905090810190601f168015620002a45780820380516001836020036101000a031916815260200191505b506040908152602082810151928201516000805433600160a060020a031991821681178355808352600180865295909220805460ff19169095179094556002805490941617909255865192945090925062000305916006918701906200083a565b5082516200031b9060079060208601906200083a565b5060198054600160a060020a031916600160a060020a038481169190911791829055604080517fc45a01550000000000000000000000000000000000000000000000000000000081529051929091169163c45a015591600480820192602092909190829003018186803b1580156200039257600080fd5b505afa158015620003a7573d6000803e3d6000fd5b505050506040513d6020811015620003be57600080fd5b5051601954604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051600160a060020a039384169363c9c6539693169163ad5c4648916004808301926020929190829003018186803b1580156200042657600080fd5b505afa1580156200043b573d6000803e3d6000fd5b505050506040513d60208110156200045257600080fd5b5051604080517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301523060248301525160448083019260209291908290030181600087803b158015620004b957600080fd5b505af1158015620004ce573d6000803e3d6000fd5b505050506040513d6020811015620004e557600080fd5b5051601a8054600160a060020a031916600160a060020a03928316179055601954604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919092169163ad5c4648916004808301926020929190829003018186803b1580156200055a57600080fd5b505afa1580156200056f573d6000803e3d6000fd5b505050506040513d60208110156200058657600080fd5b505160038054600160a060020a031916600160a060020a03928316179055306000908152600a60209081526040808320601954851684529091529020600019905581166200065c57601954604051600160a060020a0390911690730e09fabb73bd3ade0a17ecc321fd13a19e81ce82906200060190620008bf565b600160a060020a03928316815291166020820152604080519182900301906000f08015801562000635573d6000803e3d6000fd5b5060268054600160a060020a031916600160a060020a0392909216919091179055620006d1565b601954604051600160a060020a039091169082906200067b90620008bf565b600160a060020a03928316815291166020820152604080519182900301906000f080158015620006af573d6000803e3d6000fd5b5060268054600160a060020a031916600160a060020a03929092169190911790555b601a8054600160a060020a039081166000908152600d602090815260408083208054600160ff1991821681179092553080865283862080548316841790556004805488168752848720805484168517905560058054891688528588208054851686179055828852600c87528588208054851686179055338089528689208054861687179055838952600b885286892080548616871790558089528689208054861687179055838952600e885286892080548616871790558089528689208054861687179055995489168852858820805485168617905590548816875284872080548416851790555490961685528285208054909116909117905560158054600160a060020a03199081169095179055601680549094168517909355600854848352600982528383208190558351908152925191927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a350505050620008e4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200087d57805160ff1916838001178555620008ad565b82800160010185558215620008ad579182015b82811115620008ad57825182559160200191906001019062000890565b50620008bb929150620008cd565b5090565b6114bc80620060ab83390190565b5b80821115620008bb5760008155600101620008ce565b6157b780620008f46000396000f3fe608060405260043610620004135760003560e060020a9004806395d89b41116200021b578063ca33e64c116200012b578063f0b37c0411620000b3578063f708a64f116200007d578063f708a64f1462000f86578063f84ba65d1462000fc5578063f887ea401462001004578063fe9fbb80146200101c576200041b565b8063f0b37c041462000eba578063f1f3bca31462000ef1578063f2fde38b1462000f21578063f50341201462000f58576200041b565b8063dd62ed3e11620000f5578063dd62ed3e1462000dee578063df20fd491462000e2d578063e10b5d811462000e63578063e96fada21462000ea2576200041b565b8063ca33e64c1462000d78578063d51ed1c81462000d90578063d806d12f1462000dbe578063dcafac091462000dd6576200041b565b8063b6a5d7de11620001af578063bfe9abca1162000179578063bfe9abca1462000c51578063c0d786551462000c81578063c5b348981462000cb8578063ca21b29d1462000d3c576200041b565b8063b6a5d7de1462000ba5578063ba3090ca1462000bdc578063bf56b3711462000c21578063bfe109281462000c39576200041b565b8063a4b45c0011620001f1578063a4b45c001462000af9578063a8aa1b311462000b38578063a9059cbb1462000b50578063b210b06d1462000b8d576200041b565b806395d89b411462000a6a5780639d1944f51462000a82578063a09f12d91462000ab0576200041b565b806323b872dd11620003235780635c85974f11620002ab57806370a08231116200027557806370a0823114620009cf5780637d1db4a51462000a06578063893d20e81462000a1e5780638f3fa8601462000a52576200041b565b80635c85974f146200090b5780636289cc611462000939578063658d4b7f14620009785780636ddd171314620009b7576200041b565b80632f54bf6e11620002ed5780632f54bf6e146200086e578063313ce56714620008a55780633bb8a8d414620008bd578063522281bf14620008d5576200041b565b806323b872dd146200079c5780632b112e4914620007e35780632d48e89614620007fb5780632dd99ab9146200082f576200041b565b80631161ae3911620003a75780631c4c784311620003715780631c4c784314620006d1578063201e799114620006e957806323627b9f146200071d5780632375ce401462000762576200041b565b80631161ae3914620006315780631255c2f2146200066557806317db3fc614620006a157806318160ddd14620006b9576200041b565b806306fdde0311620003e957806306fdde0314620004d45780630862cb4e1462000564578063095ea7b314620005a3578063101c786f14620005f4576200041b565b80630445b6671462000420578063048c7baf146200044a57806304a66b48146200048e576200041b565b366200041b57005b600080fd5b3480156200042d57600080fd5b506200043862001053565b60408051918252519081900360200190f35b3480156200045757600080fd5b506200048c600480360360808110156200047057600080fd5b5080351515906020810135906040810135906060013562001059565b005b3480156200049b57600080fd5b506200048c600480360360a0811015620004b457600080fd5b5080359060208101359060408101359060608101359060800135620010d1565b348015620004e157600080fd5b50620004ec6200116f565b6040805160208082528351818301528351919283929083019185019080838360005b83811015620005285781810151838201526020016200050e565b50505050905090810190601f168015620005565780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156200057157600080fd5b506200048c600480360360408110156200058a57600080fd5b50600160a060020a038135811691602001351662001209565b348015620005b057600080fd5b50620005e060048036036040811015620005c957600080fd5b50600160a060020a0381351690602001356200126a565b604080519115158252519081900360200190f35b3480156200060157600080fd5b506200048c600480360360408110156200061a57600080fd5b5080359060200135600160a060020a0316620012d1565b3480156200063e57600080fd5b50620005e0600480360360408110156200065757600080fd5b50803590602001356200132e565b3480156200067257600080fd5b506200048c600480360360608110156200068b57600080fd5b5080351515906020810135906040013562001344565b348015620006ae57600080fd5b506200048c6200140f565b348015620006c657600080fd5b506200043862001465565b348015620006de57600080fd5b50620005e06200146b565b348015620006f657600080fd5b506200048c600480360360408110156200070f57600080fd5b508035906020013562001474565b3480156200072a57600080fd5b506200048c600480360360608110156200074357600080fd5b50803590602081013515159060400135600160a060020a0316620014ce565b3480156200076f57600080fd5b506200048c600480360360608110156200078857600080fd5b50803590602081013590604001356200156f565b348015620007a957600080fd5b50620005e060048036036060811015620007c257600080fd5b50600160a060020a03813581169160208101359091169060400135620015f1565b348015620007f057600080fd5b5062000438620016bf565b3480156200080857600080fd5b506200048c600480360360408110156200082157600080fd5b508035906020013562001710565b3480156200083c57600080fd5b506200048c600480360360408110156200085557600080fd5b50600160a060020a0381351690602001351515620017ea565b3480156200087b57600080fd5b50620005e0600480360360208110156200089457600080fd5b5035600160a060020a031662001845565b348015620008b257600080fd5b50620004386200185c565b348015620008ca57600080fd5b50620005e062001861565b348015620008e257600080fd5b506200048c60048036036040811015620008fb57600080fd5b508035151590602001356200186a565b3480156200091857600080fd5b506200048c600480360360208110156200093157600080fd5b5035620018c7565b3480156200094657600080fd5b506200048c600480360360408110156200095f57600080fd5b50600160a060020a038135169060200135151562001937565b3480156200098557600080fd5b506200048c600480360360408110156200099e57600080fd5b50600160a060020a038135169060200135151562001c5b565b348015620009c457600080fd5b50620005e062001cd5565b348015620009dc57600080fd5b506200043860048036036020811015620009f557600080fd5b5035600160a060020a031662001cde565b34801562000a1357600080fd5b506200043862001cf9565b34801562000a2b57600080fd5b5062000a3662001cff565b60408051600160a060020a039092168252519081900360200190f35b34801562000a5f57600080fd5b506200043862001d0e565b34801562000a7757600080fd5b50620004ec62001d14565b34801562000a8f57600080fd5b506200048c6004803603602081101562000aa857600080fd5b503562001d78565b34801562000abd57600080fd5b506200048c6004803603606081101562000ad657600080fd5b50600160a060020a03813581169160208101359091169060400135151562001ddc565b34801562000b0657600080fd5b506200048c6004803603604081101562000b1f57600080fd5b50600160a060020a038135811691602001351662001e38565b34801562000b4557600080fd5b5062000a3662001ec2565b34801562000b5d57600080fd5b50620005e06004803603604081101562000b7657600080fd5b50600160a060020a03813516906020013562001ed1565b34801562000b9a57600080fd5b506200048c62001ee0565b34801562000bb257600080fd5b506200048c6004803603602081101562000bcb57600080fd5b5035600160a060020a031662001f36565b34801562000be957600080fd5b506200048c6004803603606081101562000c0257600080fd5b50803590600160a060020a036020820135169060400135151562001fbd565b34801562000c2e57600080fd5b506200043862002019565b34801562000c4657600080fd5b5062000a366200201f565b34801562000c5e57600080fd5b506200048c6004803603602081101562000c7757600080fd5b503515156200202e565b34801562000c8e57600080fd5b506200048c6004803603602081101562000ca757600080fd5b5035600160a060020a0316620020bd565b34801562000cc557600080fd5b506200048c6004803603602081101562000cde57600080fd5b81019060208101813564010000000081111562000cfa57600080fd5b82018360208201111562000d0d57600080fd5b8035906020019184602083028401116401000000008311171562000d3057600080fd5b509092509050620021a2565b34801562000d4957600080fd5b506200048c6004803603606081101562000d6257600080fd5b508035151590602081013590604001356200222f565b34801562000d8557600080fd5b5062000a3662002298565b34801562000d9d57600080fd5b50620004386004803603602081101562000db657600080fd5b5035620022a7565b34801562000dcb57600080fd5b5062000438620022f1565b34801562000de357600080fd5b506200043862002370565b34801562000dfb57600080fd5b50620004386004803603604081101562000e1457600080fd5b50600160a060020a038135811691602001351662002376565b34801562000e3a57600080fd5b506200048c6004803603604081101562000e5357600080fd5b50803515159060200135620023a1565b34801562000e7057600080fd5b506200048c6004803603604081101562000e8957600080fd5b50600160a060020a038135169060200135151562002407565b34801562000eaf57600080fd5b5062000a3662002664565b34801562000ec757600080fd5b506200048c6004803603602081101562000ee057600080fd5b5035600160a060020a031662002673565b34801562000efe57600080fd5b50620004386004803603602081101562000f1757600080fd5b50351515620026f4565b34801562000f2e57600080fd5b506200048c6004803603602081101562000f4757600080fd5b5035600160a060020a031662002759565b34801562000f6557600080fd5b50620004386004803603602081101562000f7e57600080fd5b503562002834565b34801562000f9357600080fd5b506200048c6004803603604081101562000fac57600080fd5b50600160a060020a038135169060200135151562002841565b34801562000fd257600080fd5b506200048c6004803603604081101562000feb57600080fd5b50600160a060020a0381351690602001351515620029c8565b3480156200101157600080fd5b5062000a3662002a42565b3480156200102957600080fd5b50620005e0600480360360208110156200104257600080fd5b5035600160a060020a031662002a51565b60285481565b620010643362002a51565b620010a8576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b6020805460ff191694151594909417909355602191909155600060225560235560245543602555565b620010dc3362002a51565b62001120576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b60108590556011849055600f83905560128290556200114e82620011478581898962002a6f565b9062002a6f565b601355601481905560048104601354106200116857600080fd5b5050505050565b60068054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015620011ff5780601f10620011d357610100808354040283529160200191620011ff565b820191906000526020600020905b815481529060010190602001808311620011e157829003601f168201915b5050505050905090565b620012143362002a51565b62001258576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b620012668282600062002acd565b5050565b336000818152600a60209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b620012dc3362002a51565b62001320576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b620012668282600062002b6e565b6000826200133c83620022a7565b119392505050565b6200134f3362002a51565b62001393576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b80821015620013ec576040805160e560020a62461bcd02815260206004820152601460248201527f4e756d657261746f7220697320696e76616c6964000000000000000000000000604482015290519081900360640190fd5b602b8054931515620100000262ff00001990941693909317909255602c55602d55565b6200141a3362002a51565b6200145e576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b6000601b55565b60085490565b60305460ff1681565b6200147f3362002a51565b620014c3576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b601791909155601855565b620014d93362002a51565b6200151d576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b62001529838262002bf0565b81156200156a5742601e55601f5460408051918252517f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a9181900360200190a15b505050565b6200157a3362002a51565b620015be576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b6002828481620015ca57fe5b0411158015620015d957508183115b620015e357600080fd5b601c92909255601d55601f55565b600160a060020a0383166000908152600a6020908152604080832033845290915281205460001914620016a857604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e636500000000000000000000602080830191909152600160a060020a0387166000908152600a825283812033825290915291909120546200168391849062002d62565b600160a060020a0385166000908152600a602090815260408083203384529091529020555b620016b584848462002e00565b90505b9392505050565b6005546000906200170b90620016de90600160a060020a031662001cde565b6004546200170490620016fa90600160a060020a031662001cde565b60085490620031ed565b90620031ed565b905090565b6200171b3362002a51565b6200175f576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b602654604080517f2d48e89600000000000000000000000000000000000000000000000000000000815260048101859052602481018490529051600160a060020a0390921691632d48e8969160448082019260009290919082900301818387803b158015620017cd57600080fd5b505af1158015620017e2573d6000803e3d6000fd5b505050505050565b620017f53362002a51565b62001839576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b62001266828262003231565b600054600160a060020a038281169116145b919050565b601290565b60205460ff1681565b620018753362002a51565b620018b9576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b62001266828260006200327e565b620018d23362002a51565b62001916576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b6103e8600854816200192457fe5b048110156200193257600080fd5b602955565b620019423362002a51565b62001986576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b801562001b2c57602654604080517feaf71e000000000000000000000000000000000000000000000000000000000081529051600092600160a060020a03169163eaf71e00916004808301926020929190829003018186803b158015620019ec57600080fd5b505afa15801562001a01573d6000803e3d6000fd5b505050506040513d602081101562001a1857600080fd5b5051602654604080517f101c786f000000000000000000000000000000000000000000000000000000008152606460048201523360248201529051929350600160a060020a039091169163101c786f9160448082019260009290919082900301818387803b15801562001a8a57600080fd5b505af115801562001a9f573d6000803e3d6000fd5b5050602654604080517f0862cb4e000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301523360248301529151919092169350630862cb4e9250604480830192600092919082900301818387803b15801562001b1157600080fd5b505af115801562001b26573d6000803e3d6000fd5b50505050505b600160a060020a03821662001bd657601954604051600160a060020a0390911690730e09fabb73bd3ade0a17ecc321fd13a19e81ce829062001b6e9062004255565b600160a060020a03928316815291166020820152604080519182900301906000f08015801562001ba2573d6000803e3d6000fd5b506026805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905562001266565b601954604051600160a060020a0390911690839062001bf59062004255565b600160a060020a03928316815291166020820152604080519182900301906000f08015801562001c29573d6000803e3d6000fd5b506026805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555050565b62001c663362002a51565b62001caa576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b600160a060020a03919091166000908152600b60205260409020805460ff1916911515919091179055565b602b5460ff1681565b600160a060020a031660009081526009602052604090205490565b60295481565b600054600160a060020a031690565b602a5481565b60078054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015620011ff5780601f10620011d357610100808354040283529160200191620011ff565b62001d833362002a51565b62001dc7576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b620b71b0811062001dd757600080fd5b602755565b62001de73362002a51565b62001e2b576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b6200156a83838362002acd565b62001e433362002a51565b62001e87576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b60158054600160a060020a0393841673ffffffffffffffffffffffffffffffffffffffff199182161790915560168054929093169116179055565b601a54600160a060020a031681565b6000620016b833848462002e00565b62001eeb3362002a51565b62001f2f576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b6000601e55565b62001f413362001845565b62001f96576040805160e560020a62461bcd02815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03166000908152600160208190526040909120805460ff19169091179055565b62001fc83362002a51565b6200200c576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b6200156a83838362002b6e565b601b5481565b602654600160a060020a031681565b620020393362002a51565b6200207d576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b601a8054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b620020c83362002a51565b6200210c576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b601954600160a060020a038281169116141562002173576040805160e560020a62461bcd02815260206004820152601260248201527f526f75746572206973207468652073616d650000000000000000000000000000604482015290519081900360640190fd5b6019805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b620021ad3362002a51565b620021f1576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b60005b818110156200156a57620022268383838181106200220e57fe5b90506020020135600160a060020a0316600162003231565b600101620021f4565b6200223a3362002a51565b6200227e576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b6030805460ff191693151593909317909255602f55602a55565b601554600160a060020a031681565b6000620012cb620022b7620016bf565b601a54620022ea90620022e290600290620022db90600160a060020a031662001cde565b906200330b565b85906200330b565b906200336c565b600080620023124262001704601f54601e5462002a6f90919063ffffffff16565b905060006200233d60135462001704601d54620022ea601c546013546200330b90919063ffffffff16565b9050620023696200235f601f54620022ea85856200330b90919063ffffffff16565b6013549062002a6f565b9250505090565b602f5481565b600160a060020a039182166000908152600a6020908152604080832093909416825291909152205490565b620023ac3362002a51565b620023f0576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b602b805460ff191692151592909217909155602855565b620024123362002a51565b62002456576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b8015620025fc57602654604080517feaf71e000000000000000000000000000000000000000000000000000000000081529051600092600160a060020a03169163eaf71e00916004808301926020929190829003018186803b158015620024bc57600080fd5b505afa158015620024d1573d6000803e3d6000fd5b505050506040513d6020811015620024e857600080fd5b5051602654604080517f101c786f000000000000000000000000000000000000000000000000000000008152606460048201523360248201529051929350600160a060020a039091169163101c786f9160448082019260009290919082900301818387803b1580156200255a57600080fd5b505af11580156200256f573d6000803e3d6000fd5b5050602654604080517f0862cb4e000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301523360248301529151919092169350630862cb4e9250604480830192600092919082900301818387803b158015620025e157600080fd5b505af1158015620025f6573d6000803e3d6000fd5b50505050505b602654604080517fde320cc1000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151919092169163de320cc191602480830192600092919082900301818387803b158015620017cd57600080fd5b601654600160a060020a031681565b6200267e3362001845565b620026d3576040805160e560020a62461bcd02815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03166000908152600160205260409020805460ff19169055565b600043603154601b5401106200271c5760145462002714906001620031ed565b905062001857565b818015620027415750426200273f601f54601e5462002a6f90919063ffffffff16565b115b15620027515762002714620022f1565b505060135490565b620027643362001845565b620027b9576040805160e560020a62461bcd02815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b6000620012cb82620033b0565b6200284c3362002a51565b62002890576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b600160a060020a0382163014801590620028b85750601a54600160a060020a03838116911614155b620028c257600080fd5b600160a060020a0382166000908152600d60205260409020805460ff1916821580159190911790915562002966576026546040805160e160020a630a5b654b028152600160a060020a03858116600483015260006024830181905292519316926314b6ca969260448084019391929182900301818387803b1580156200294757600080fd5b505af11580156200295c573d6000803e3d6000fd5b5050505062001266565b602654600160a060020a0383811660008181526009602052604080822054815160e160020a630a5b654b028152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b158015620017cd57600080fd5b620029d33362002a51565b62002a17576040805160e560020a62461bcd02815260206004820152600b602482015260008051602062005720833981519152604482015290519081900360640190fd5b600160a060020a03919091166000908152600c60205260409020805460ff1916911515919091179055565b601954600160a060020a031681565b600160a060020a031660009081526001602052604090205460ff1690565b600082820183811015620016b8576040805160e560020a62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b62002ad9838362003506565b80156200156a57602654604080517f0862cb4e000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152858116602483015291519190921691630862cb4e91604480830192600092919082900301818387803b15801562002b5057600080fd5b505af115801562002b65573d6000803e3d6000fd5b50505050505050565b62002b7a838362003686565b80156200156a57602654604080517f101c786f00000000000000000000000000000000000000000000000000000000815260048101869052600160a060020a0385811660248301529151919092169163101c786f91604480830192600092919082900301818387803b15801562002b5057600080fd5b602b805461ff001916610100179055604080516002808252606080830184529260208301908036833750506003548251929350600160a060020a03169183915060009062002c3a57fe5b6020026020010190600160a060020a03169081600160a060020a031681525050308160018151811062002c6957fe5b600160a060020a039283166020918202929092018101919091526019546040517fb6f9de9500000000000000000000000000000000000000000000000000000000815260006004820181815287861660448401524260648401819052608060248501908152885160848601528851959097169663b6f9de95968b9694958a958c95939260a49092019187810191028083838b5b8381101562002d1657818101518382015260200162002cfc565b50505050905001955050505050506000604051808303818588803b15801562002d3e57600080fd5b505af19350505050801562002d51575060015b505050602b805461ff001916905550565b6000818484111562002df85760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562002dbc57818101518382015260200162002da2565b50505050905090810190601f16801562002dea5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b602b54600090610100900460ff161562002e295762002e2184848462003751565b9050620016b8565b62002e336200383f565b1562002e435762002e4362003896565b62002e4d62003cba565b1562002e5d5762002e5d62003d16565b62002e6762003d62565b15801562002e8d5750600160a060020a0384166000908152600e602052604090205460ff165b801562002ea75750601a54600160a060020a038481169116145b801562002ece5750601a5474010000000000000000000000000000000000000000900460ff165b1562002f0757600160a060020a03841660009081526009602052604090205462002ef757600080fd5b62002f076000600a60016200327e565b62002f1484848462003d6a565b604080518082018252601481527f496e73756666696369656e742042616c616e6365000000000000000000000000602080830191909152600160a060020a03871660009081526009909152919091205462002f7191849062002d62565b600160a060020a03851660009081526009602052604081209190915562002f988562003f46565b62002fa4578262002fb1565b62002fb185858562003f65565b600160a060020a03851660009081526009602052604090205490915062002fd9908262002a6f565b600160a060020a038086166000908152600960209081526040808320949094559188168152600d909152205460ff166200308357602654600160a060020a0386811660008181526009602052604080822054815160e160020a630a5b654b028152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b1580156200306f57600080fd5b505af192505050801562003081575060015b505b600160a060020a0384166000908152600d602052604090205460ff166200311a57602654600160a060020a0385811660008181526009602052604080822054815160e160020a630a5b654b028152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b1580156200310657600080fd5b505af192505050801562003118575060015b505b602654602754604080517fffb2c479000000000000000000000000000000000000000000000000000000008152600481019290925251600160a060020a039092169163ffb2c4799160248082019260009290919082900301818387803b1580156200318457600080fd5b505af192505050801562003196575060015b5083600160a060020a031685600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3506001949350505050565b6000620016b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062002d62565b600160a060020a039091166000908152600e60209081526040808320805494151560ff199586168117909155600c83528184208054861682179055600b9092529091208054909216179055565b43601b5542601e5560318290558015620032ae576030805460ff19169055602b805462ff000019169055620032cd565b6030805460ff19166001179055602b805462ff00001916620100001790555b82156200156a576020805460ff19166001179055678ac7230489e800006021556000602255661f9465b8ab8e38602355600260245543602555505050565b6000826200331c57506000620012cb565b828202828482816200332a57fe5b0414620016b85760405160e560020a62461bcd028152600401808060200182810382526021815260200180620057406021913960400191505060405180910390fd5b6000620016b883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062004025565b601a546000908190620033cc90600160a060020a031662001cde565b600354601a54604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152905193945060009391909216916370a08231916024808301926020929190829003018186803b1580156200343c57600080fd5b505afa15801562003451573d6000803e3d6000fd5b505050506040513d60208110156200346857600080fd5b5051905081158062003478575080155b156200348a5760009250505062001857565b60006200349882846200330b565b90506000620034a8848762002a6f565b90506000620034b883836200336c565b90506000620034cd86620022ea878b6200330b565b90506000620034dd8684620031ed565b602c54909150620034f9906200170483620022ea86846200330b565b9998505050505050505050565b600254600160a060020a0316331462003569576040805160e560020a62461bcd02815260206004820152601d60248201527f546f6b656e73526573637565723a206e6f7420617574686f72697a6564000000604482015290519081900360640190fd5b600082600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316815260200191505060206040518083038186803b158015620035bc57600080fd5b505afa158015620035d1573d6000803e3d6000fd5b505050506040513d6020811015620035e857600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301526024820184905291519293509085169163a9059cbb916044808201926020929091908290030181600087803b1580156200365a57600080fd5b505af11580156200366f573d6000803e3d6000fd5b505050506040513d60208110156200116857600080fd5b600254600160a060020a03163314620036e9576040805160e560020a62461bcd02815260206004820152601d60248201527f546f6b656e73526573637565723a206e6f7420617574686f72697a6564000000604482015290519081900360640190fd5b60008260641415620036fe5750303162003714565b620037116064620022ea3031866200330b565b90505b604051600160a060020a0383169082156108fc029083906000818181858888f193505050501580156200374b573d6000803e3d6000fd5b50505050565b604080518082018252601481527f496e73756666696369656e742042616c616e6365000000000000000000000000602080830191909152600160a060020a0386166000908152600990915291822054620037ad91849062002d62565b600160a060020a038086166000908152600960205260408082209390935590851681522054620037de908362002a6f565b600160a060020a0380851660008181526009602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b601a54600090600160a060020a03163314801590620038665750602b54610100900460ff16155b8015620038755750602b5460ff165b80156200170b57505060285430600090815260096020526040902054101590565b602b805461ff001916610100179055601754601854600091620038b9916200132e565b620038c757601054620038ca565b60005b90506000620038f26002620022ea601354620022ea866028546200330b90919063ffffffff16565b905060006200390d82602854620031ed90919063ffffffff16565b60408051600280825260608083018452939450909160208301908036833701905050905030816000815181106200394057fe5b600160a060020a0392831660209182029290920101526003548251911690829060019081106200396c57fe5b600160a060020a039283166020918202929092018101919091526019546040517f791ac947000000000000000000000000000000000000000000000000000000008152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a48701528951833199979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b8381101562003a2257818101518382015260200162003a08565b505050509050019650505050505050600060405180830381600087803b15801562003a4c57600080fd5b505af192505050801562003a5e575060015b50600062003a6e303183620031ed565b9050600062003a8d62003a838860026200336c565b60135490620031ed565b9050600062003aa56002620022ea8481878d6200330b565b9050600062003ac583620022ea600f54876200330b90919063ffffffff16565b9050600062003ae584620022ea601254886200330b90919063ffffffff16565b9050602660009054906101000a9004600160a060020a0316600160a060020a031663d0e30db0836040518263ffffffff1660e060020a0281526004016000604051808303818588803b15801562003b3b57600080fd5b505af19350505050801562003b4e575060015b50601654604051600160a060020a039091169082156108fc029083906000818181858888f1935050505015801562003b8a573d6000803e3d6000fd5b50881562003ca357601954601554604080517ff305d719000000000000000000000000000000000000000000000000000000008152306004820152602481018d90526000604482018190526064820152600160a060020a0392831660848201524260a48201529051919092169163f305d71991869160c48082019260609290919082900301818588803b15801562003c2157600080fd5b505af19350505050801562003c5857506040513d606081101562003c4457600080fd5b508051602082015160409092015190919060015b62003c635762003c67565b5050505b60408051848152602081018b905281517f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506929181900390910190a15b5050602b805461ff00191690555050505050505050565b601a54600090600160a060020a0316331480159062003ce15750602b54610100900460ff16155b801562003cf0575060205460ff165b801562003d035750436024546025540111155b80156200170b5750506023543031101590565b60235460045462003d319190600160a060020a031662002bf0565b4360255560235460225462003d469162002a6f565b6022819055602154101562003d60576020805460ff191690555b565b601b54151590565b600160a060020a0383166000908152600e602052604090205460ff16801562003dab5750600160a060020a0382166000908152600e602052604090205460ff165b1562003db7576200156a565b62003dc162003d62565b62003e015760405160e560020a62461bcd028152600401808060200182810382526021815260200180620057616021913960400191505060405180910390fd5b6029548111158062003e2b5750600160a060020a0383166000908152600c602052604090205460ff165b62003e80576040805160e560020a62461bcd02815260206004820152601160248201527f5458204c696d6974204578636565646564000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0382166000908152600e602052604090205460ff168062003ece5750602a54600160a060020a03831660009081526009602052604090205462003ecb908362002a6f565b11155b62003f23576040805160e560020a62461bcd02815260206004820152601860248201527f4d61782057616c6c65742053697a652045786365656465640000000000000000604482015290519081900360640190fd5b62003f3083838362004091565b62003f3b836200410d565b6200156a826200410d565b600160a060020a03166000908152600b602052604090205460ff161590565b601454601a54600091829162003f9c9190620022ea9062003f9490600160a060020a03898116911614620026f4565b86906200330b565b3060009081526009602052604090205490915062003fbb908262002a6f565b3060008181526009602090815260409182902093909355805184815290519192600160a060020a038916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a36200401c8382620031ed565b95945050505050565b600081836200407a5760405160e560020a62461bcd02815260206004820181815283516024840152835190928392604490910191908501908083836000831562002dbc57818101518382015260200162002da2565b5060008385816200408757fe5b0495945050505050565b6200409d8383620041e4565b156200156a576000620040b082620033b0565b9050602d548111156200374b576040805160e560020a62461bcd02815260206004820152601560248201527f507269636520496d7061637420746f6f20686967680000000000000000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600e602052604090205460ff168062004138575060305460ff16155b156200414457620041e1565b602f54600160a060020a0382166000908152602e602052604090205442916200416e919062002a6f565b1115620041c5576040805160e560020a62461bcd02815260206004820152601f60248201527f436f6f6c646f776e3a20546f6f206d616e79207472616e73616374696f6e7300604482015290519081900360640190fd5b600160a060020a0381166000908152602e602052604090204290555b50565b602b5460009062010000900460ff168015620042195750600160a060020a0383166000908152600c602052604090205460ff16155b8015620042335750601a54600160a060020a038381169116145b8015620016b85750601a546000906200133c90600160a060020a031662001cde565b6114bc80620042648339019056fe60806040526ec097ce7bc90715b34b9f1000000000600d5561012c600e55670de0b6b3a7640000600f5534801561003557600080fd5b506040516114bc3803806114bc8339818101604052604081101561005857600080fd5b50805160209091015160008054600160a060020a03191633179055600160a060020a03821661009b577310ed43c718714eb63d5aa57b78b54704e256024e61009d565b815b60048054600160a060020a031916600160a060020a0392831617808255604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489281810192602092909190829003018186803b15801561010c57600080fd5b505afa158015610120573d6000803e3d6000fd5b505050506040513d602081101561013657600080fd5b505160038054600160a060020a03928316600160a060020a03199182161790915560018054821633179055600280549390921692169190911790555061133b806101816000396000f3fe608060405260043610610126576000357c0100000000000000000000000000000000000000000000000000000000900480638b8dfa39116100b2578063e2d2e21911610081578063e2d2e21914610380578063eaf71e0014610395578063f0fc6bca146103c6578063ffb2c479146103db578063ffd49c841461040557610126565b80638b8dfa39146102c1578063ce7c2ac2146102f4578063d0e30db014610345578063de320cc11461034d57610126565b806328fd3198116100f957806328fd3198146102015780632d48e896146102345780633a98ef39146102645780634fab0ae81461027957806366e28fcd1461028e57610126565b80630862cb4e1461012b578063101c786f1461016857806311ce023d146101a157806314b6ca96146101c8575b600080fd5b34801561013757600080fd5b506101666004803603604081101561014e57600080fd5b50600160a060020a038135811691602001351661041a565b005b34801561017457600080fd5b506101666004803603604081101561018b57600080fd5b5080359060200135600160a060020a031661048f565b3480156101ad57600080fd5b506101b6610559565b60408051918252519081900360200190f35b3480156101d457600080fd5b50610166600480360360408110156101eb57600080fd5b50600160a060020a03813516906020013561055f565b34801561020d57600080fd5b506101b66004803603602081101561022457600080fd5b5035600160a060020a0316610684565b34801561024057600080fd5b506101666004803603604081101561025757600080fd5b5080359060200135610710565b34801561027057600080fd5b506101b6610732565b34801561028557600080fd5b506101b6610738565b34801561029a57600080fd5b506101b6600480360360208110156102b157600080fd5b5035600160a060020a031661073e565b3480156102cd57600080fd5b506101b6600480360360208110156102e457600080fd5b5035600160a060020a0316610750565b34801561030057600080fd5b506103276004803603602081101561031757600080fd5b5035600160a060020a0316610762565b60408051938452602084019290925282820152519081900360600190f35b610166610783565b34801561035957600080fd5b506101666004803603602081101561037057600080fd5b5035600160a060020a0316610a9c565b34801561038c57600080fd5b506101b6610ae7565b3480156103a157600080fd5b506103aa610aed565b60408051600160a060020a039092168252519081900360200190f35b3480156103d257600080fd5b50610166610afc565b3480156103e757600080fd5b50610166600480360360208110156103fe57600080fd5b5035610b05565b34801561041157600080fd5b506101b6610bce565b600054600160a060020a0316331461047c576040805160e560020a62461bcd02815260206004820152601d60248201527f546f6b656e73526573637565723a206e6f7420617574686f72697a6564000000604482015290519081900360640190fd5b6000600c5561048b8282610bd4565b5050565b600054600160a060020a031633146104f1576040805160e560020a62461bcd02815260206004820152601d60248201527f546f6b656e73526573637565723a206e6f7420617574686f72697a6564000000604482015290519081900360640190fd5b600082606414156105045750303161051d565b61051a6064610514303186610d66565b90610dcb565b90505b604051600160a060020a0383169082156108fc029083906000818181858888f19350505050158015610553573d6000803e3d6000fd5b50505050565b600d5481565b600154600160a060020a0316331461057657600080fd5b600160a060020a0382166000908152600860205260409020541561059d5761059d82610e0d565b6000811180156105c35750600160a060020a038216600090815260086020526040902054155b156105d6576105d182610f75565b610609565b801580156105fb5750600160a060020a03821660009081526008602052604090205415155b156106095761060982610fe3565b600160a060020a03821660009081526008602052604090205460095461063a918391610634916110ea565b9061112c565b600955600160a060020a038216600090815260086020526040902081905561066181611189565b600160a060020a0390921660009081526008602052604090206001019190915550565b600160a060020a0381166000908152600860205260408120546106a95750600061070b565b600160a060020a0382166000908152600860205260408120546106cb90611189565b600160a060020a0384166000908152600860205260409020600101549091508082116106fc5760009250505061070b565b61070682826110ea565b925050505b919050565b600154600160a060020a0316331461072757600080fd5b600e91909155600f55565b60095481565b600f5481565b600a6020526000908152604090205481565b600b6020526000908152604090205481565b60086020526000908152604090208054600182015460029092015490919083565b600154600160a060020a0316331461079a57600080fd5b600254600160a060020a03166107af57610a9a565b600254604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a08231916024808301926020929190829003018186803b15801561081357600080fd5b505afa158015610827573d6000803e3d6000fd5b505050506040513d602081101561083d57600080fd5b505160408051600280825260608083018452939450909160208301908036833750506003548251929350600160a060020a03169183915060009061087d57fe5b600160a060020a0392831660209182029290920101526002548251911690829060019081106108a857fe5b600160a060020a03928316602091820292909201810191909152600480546040517fb6f9de95000000000000000000000000000000000000000000000000000000008152600092810183815230604483018190524260648401819052608060248501908152895160848601528951959098169763b6f9de95973497968b969495939460a4019187810191028083838b5b83811015610950578181015183820152602001610938565b50505050905001955050505050506000604051808303818588803b15801561097757600080fd5b505af115801561098b573d6000803e3d6000fd5b5050600254604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009550610a2f9450879350600160a060020a03909216916370a0823191602480820192602092909190829003018186803b1580156109fd57600080fd5b505afa158015610a11573d6000803e3d6000fd5b505050506040513d6020811015610a2757600080fd5b5051906110ea565b600254600160a060020a03166000908152600a6020526040902054909150610a57908261112c565b600254600160a060020a03166000908152600a6020526040902055600954600d54610a9391610a8a916105149085610d66565b600c549061112c565b600c555050505b565b600154600160a060020a03163314610ab357600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556000600c55565b600c5481565b600254600160a060020a031681565b610a9a33610e0d565b600154600160a060020a03163314610b1c57600080fd5b60055480610b2a5750610bcb565b6000805a905060005b8483108015610b4157508381105b15610bc6578360105410610b555760006010555b6000600560105481548110610b6657fe5b600091825260209091200154600160a060020a03169050610b86816111a6565b15610b9457610b9481610e0d565b610ba9610ba25a85906110ea565b859061112c565b93505a601080546001908101909155909350919091019050610b33565b505050505b50565b600e5481565b600054600160a060020a03163314610c36576040805160e560020a62461bcd02815260206004820152601d60248201527f546f6b656e73526573637565723a206e6f7420617574686f72697a6564000000604482015290519081900360640190fd5b600082600160a060020a03166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316815260200191505060206040518083038186803b158015610ca157600080fd5b505afa158015610cb5573d6000803e3d6000fd5b505050506040513d6020811015610ccb57600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301526024820184905291519293509085169163a9059cbb916044808201926020929091908290030181600087803b158015610d3c57600080fd5b505af1158015610d50573d6000803e3d6000fd5b505050506040513d6020811015610bc657600080fd5b600082610d7557506000610dc5565b82820282848281610d8257fe5b0414610dc25760405160e560020a62461bcd0281526004018080602001828103825260218152602001806112e56021913960400191505060405180910390fd5b90505b92915050565b6000610dc283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111e2565b600160a060020a038116600090815260086020526040902054610e2f57610bcb565b6000610e3a82610684565b9050801561048b57600254600160a060020a03166000908152600b6020526040902054610e67908261112c565b60028054600160a060020a039081166000908152600b6020908152604080832095909555925484517fa9059cbb000000000000000000000000000000000000000000000000000000008152878416600482015260248101879052945192169363a9059cbb93604480830194919391928390030190829087803b158015610eec57600080fd5b505af1158015610f00573d6000803e3d6000fd5b505050506040513d6020811015610f1657600080fd5b5050600160a060020a03821660009081526007602090815260408083204290556008909152902060020154610f4b908261112c565b600160a060020a038316600090815260086020526040902060028101919091555461066190611189565b60058054600160a060020a039092166000818152600660205260408120849055600184018355919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0909101805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b600580546000198101908110610ff557fe5b6000918252602080832090910154600160a060020a038481168452600690925260409092205460058054929093169291811061102d57fe5b6000918252602080832091909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03948516179055918316815260069182905260408120546005805491939291600019810190811061108857fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205560058054806110b857fe5b6000828152602090208101600019908101805473ffffffffffffffffffffffffffffffffffffffff1916905501905550565b6000610dc283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611287565b600082820183811015610dc2576040805160e560020a62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610dc5600d54610514600c5485610d6690919063ffffffff16565b600e54600160a060020a0382166000908152600760205260408120549091429101108015610dc55750600f546111db83610684565b1192915050565b600081836112715760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561123657818101518382015260200161121e565b50505050905090810190601f1680156112635780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161127d57fe5b0495945050505050565b600081848411156112dc5760405160e560020a62461bcd02815260206004820181815283516024840152835190928392604490910191908501908083836000831561123657818101518382015260200161121e565b50505090039056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220a4c1dee5b8ce170e42e96cf41241ab08557abdcf9cbc74fe3bdbfbdcf8bc430564736f6c634300060c003321415554484f52495a4544000000000000000000000000000000000000000000536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7754686520636f6e747261637420686173206e6f74206c61756e6368656420796574a26469706673582212200dc235cd8c4a5311bb055b32bb84fd094ad2d0221a86d063f1b7dc963176d04564736f6c634300060c003360806040526ec097ce7bc90715b34b9f1000000000600d5561012c600e55670de0b6b3a7640000600f5534801561003557600080fd5b506040516114bc3803806114bc8339818101604052604081101561005857600080fd5b50805160209091015160008054600160a060020a03191633179055600160a060020a03821661009b577310ed43c718714eb63d5aa57b78b54704e256024e61009d565b815b60048054600160a060020a031916600160a060020a0392831617808255604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489281810192602092909190829003018186803b15801561010c57600080fd5b505afa158015610120573d6000803e3d6000fd5b505050506040513d602081101561013657600080fd5b505160038054600160a060020a03928316600160a060020a03199182161790915560018054821633179055600280549390921692169190911790555061133b806101816000396000f3fe608060405260043610610126576000357c0100000000000000000000000000000000000000000000000000000000900480638b8dfa39116100b2578063e2d2e21911610081578063e2d2e21914610380578063eaf71e0014610395578063f0fc6bca146103c6578063ffb2c479146103db578063ffd49c841461040557610126565b80638b8dfa39146102c1578063ce7c2ac2146102f4578063d0e30db014610345578063de320cc11461034d57610126565b806328fd3198116100f957806328fd3198146102015780632d48e896146102345780633a98ef39146102645780634fab0ae81461027957806366e28fcd1461028e57610126565b80630862cb4e1461012b578063101c786f1461016857806311ce023d146101a157806314b6ca96146101c8575b600080fd5b34801561013757600080fd5b506101666004803603604081101561014e57600080fd5b50600160a060020a038135811691602001351661041a565b005b34801561017457600080fd5b506101666004803603604081101561018b57600080fd5b5080359060200135600160a060020a031661048f565b3480156101ad57600080fd5b506101b6610559565b60408051918252519081900360200190f35b3480156101d457600080fd5b50610166600480360360408110156101eb57600080fd5b50600160a060020a03813516906020013561055f565b34801561020d57600080fd5b506101b66004803603602081101561022457600080fd5b5035600160a060020a0316610684565b34801561024057600080fd5b506101666004803603604081101561025757600080fd5b5080359060200135610710565b34801561027057600080fd5b506101b6610732565b34801561028557600080fd5b506101b6610738565b34801561029a57600080fd5b506101b6600480360360208110156102b157600080fd5b5035600160a060020a031661073e565b3480156102cd57600080fd5b506101b6600480360360208110156102e457600080fd5b5035600160a060020a0316610750565b34801561030057600080fd5b506103276004803603602081101561031757600080fd5b5035600160a060020a0316610762565b60408051938452602084019290925282820152519081900360600190f35b610166610783565b34801561035957600080fd5b506101666004803603602081101561037057600080fd5b5035600160a060020a0316610a9c565b34801561038c57600080fd5b506101b6610ae7565b3480156103a157600080fd5b506103aa610aed565b60408051600160a060020a039092168252519081900360200190f35b3480156103d257600080fd5b50610166610afc565b3480156103e757600080fd5b50610166600480360360208110156103fe57600080fd5b5035610b05565b34801561041157600080fd5b506101b6610bce565b600054600160a060020a0316331461047c576040805160e560020a62461bcd02815260206004820152601d60248201527f546f6b656e73526573637565723a206e6f7420617574686f72697a6564000000604482015290519081900360640190fd5b6000600c5561048b8282610bd4565b5050565b600054600160a060020a031633146104f1576040805160e560020a62461bcd02815260206004820152601d60248201527f546f6b656e73526573637565723a206e6f7420617574686f72697a6564000000604482015290519081900360640190fd5b600082606414156105045750303161051d565b61051a6064610514303186610d66565b90610dcb565b90505b604051600160a060020a0383169082156108fc029083906000818181858888f19350505050158015610553573d6000803e3d6000fd5b50505050565b600d5481565b600154600160a060020a0316331461057657600080fd5b600160a060020a0382166000908152600860205260409020541561059d5761059d82610e0d565b6000811180156105c35750600160a060020a038216600090815260086020526040902054155b156105d6576105d182610f75565b610609565b801580156105fb5750600160a060020a03821660009081526008602052604090205415155b156106095761060982610fe3565b600160a060020a03821660009081526008602052604090205460095461063a918391610634916110ea565b9061112c565b600955600160a060020a038216600090815260086020526040902081905561066181611189565b600160a060020a0390921660009081526008602052604090206001019190915550565b600160a060020a0381166000908152600860205260408120546106a95750600061070b565b600160a060020a0382166000908152600860205260408120546106cb90611189565b600160a060020a0384166000908152600860205260409020600101549091508082116106fc5760009250505061070b565b61070682826110ea565b925050505b919050565b600154600160a060020a0316331461072757600080fd5b600e91909155600f55565b60095481565b600f5481565b600a6020526000908152604090205481565b600b6020526000908152604090205481565b60086020526000908152604090208054600182015460029092015490919083565b600154600160a060020a0316331461079a57600080fd5b600254600160a060020a03166107af57610a9a565b600254604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a08231916024808301926020929190829003018186803b15801561081357600080fd5b505afa158015610827573d6000803e3d6000fd5b505050506040513d602081101561083d57600080fd5b505160408051600280825260608083018452939450909160208301908036833750506003548251929350600160a060020a03169183915060009061087d57fe5b600160a060020a0392831660209182029290920101526002548251911690829060019081106108a857fe5b600160a060020a03928316602091820292909201810191909152600480546040517fb6f9de95000000000000000000000000000000000000000000000000000000008152600092810183815230604483018190524260648401819052608060248501908152895160848601528951959098169763b6f9de95973497968b969495939460a4019187810191028083838b5b83811015610950578181015183820152602001610938565b50505050905001955050505050506000604051808303818588803b15801561097757600080fd5b505af115801561098b573d6000803e3d6000fd5b5050600254604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009550610a2f9450879350600160a060020a03909216916370a0823191602480820192602092909190829003018186803b1580156109fd57600080fd5b505afa158015610a11573d6000803e3d6000fd5b505050506040513d6020811015610a2757600080fd5b5051906110ea565b600254600160a060020a03166000908152600a6020526040902054909150610a57908261112c565b600254600160a060020a03166000908152600a6020526040902055600954600d54610a9391610a8a916105149085610d66565b600c549061112c565b600c555050505b565b600154600160a060020a03163314610ab357600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556000600c55565b600c5481565b600254600160a060020a031681565b610a9a33610e0d565b600154600160a060020a03163314610b1c57600080fd5b60055480610b2a5750610bcb565b6000805a905060005b8483108015610b4157508381105b15610bc6578360105410610b555760006010555b6000600560105481548110610b6657fe5b600091825260209091200154600160a060020a03169050610b86816111a6565b15610b9457610b9481610e0d565b610ba9610ba25a85906110ea565b859061112c565b93505a601080546001908101909155909350919091019050610b33565b505050505b50565b600e5481565b600054600160a060020a03163314610c36576040805160e560020a62461bcd02815260206004820152601d60248201527f546f6b656e73526573637565723a206e6f7420617574686f72697a6564000000604482015290519081900360640190fd5b600082600160a060020a03166370a08231306040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316815260200191505060206040518083038186803b158015610ca157600080fd5b505afa158015610cb5573d6000803e3d6000fd5b505050506040513d6020811015610ccb57600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301526024820184905291519293509085169163a9059cbb916044808201926020929091908290030181600087803b158015610d3c57600080fd5b505af1158015610d50573d6000803e3d6000fd5b505050506040513d6020811015610bc657600080fd5b600082610d7557506000610dc5565b82820282848281610d8257fe5b0414610dc25760405160e560020a62461bcd0281526004018080602001828103825260218152602001806112e56021913960400191505060405180910390fd5b90505b92915050565b6000610dc283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111e2565b600160a060020a038116600090815260086020526040902054610e2f57610bcb565b6000610e3a82610684565b9050801561048b57600254600160a060020a03166000908152600b6020526040902054610e67908261112c565b60028054600160a060020a039081166000908152600b6020908152604080832095909555925484517fa9059cbb000000000000000000000000000000000000000000000000000000008152878416600482015260248101879052945192169363a9059cbb93604480830194919391928390030190829087803b158015610eec57600080fd5b505af1158015610f00573d6000803e3d6000fd5b505050506040513d6020811015610f1657600080fd5b5050600160a060020a03821660009081526007602090815260408083204290556008909152902060020154610f4b908261112c565b600160a060020a038316600090815260086020526040902060028101919091555461066190611189565b60058054600160a060020a039092166000818152600660205260408120849055600184018355919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0909101805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b600580546000198101908110610ff557fe5b6000918252602080832090910154600160a060020a038481168452600690925260409092205460058054929093169291811061102d57fe5b6000918252602080832091909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03948516179055918316815260069182905260408120546005805491939291600019810190811061108857fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205560058054806110b857fe5b6000828152602090208101600019908101805473ffffffffffffffffffffffffffffffffffffffff1916905501905550565b6000610dc283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611287565b600082820183811015610dc2576040805160e560020a62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610dc5600d54610514600c5485610d6690919063ffffffff16565b600e54600160a060020a0382166000908152600760205260408120549091429101108015610dc55750600f546111db83610684565b1192915050565b600081836112715760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561123657818101518382015260200161121e565b50505050905090810190601f1680156112635780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161127d57fe5b0495945050505050565b600081848411156112dc5760405160e560020a62461bcd02815260206004820181815283516024840152835190928392604490910191908501908083836000831561123657818101518382015260200161121e565b50505090039056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220a4c1dee5b8ce170e42e96cf41241ab08557abdcf9cbc74fe3bdbfbdcf8bc430564736f6c634300060c0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e0000000000000000000000000e09fabb73bd3ade0a17ecc321fd13a19e81ce82000000000000000000000000000000000000000000000000000000000000000e53686974636f696e57697a61726400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045348495700000000000000000000000000000000000000000000000000000000

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e0000000000000000000000000e09fabb73bd3ade0a17ecc321fd13a19e81ce82000000000000000000000000000000000000000000000000000000000000000e53686974636f696e57697a61726400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045348495700000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _token_name (string): ShitcoinWizard
Arg [1] : _token_symbol (string): SHIW
Arg [2] : _router_address (address): 0x10ed43c718714eb63d5aa57b78b54704e256024e
Arg [3] : _rewards_token (address): 0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e
Arg [3] : 0000000000000000000000000e09fabb73bd3ade0a17ecc321fd13a19e81ce82
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000e
Arg [5] : 53686974636f696e57697a617264000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 5348495700000000000000000000000000000000000000000000000000000000


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.