Contract 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e8

 

Contract Overview

Balance:
0 BNB

BNB Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x436368be35be39c8e613b84a0ebfb1c9f8ba9b8e4db1e90badd777d559f9d214Prepare For Pre ...126700912021-11-15 13:13:2422 days 23 hrs ago0xba1217b56c84c42ad25cdcc69b6008bb05fd8c76 IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.00013472
0xbcba9821e0241e0f4240baf44faa45df1339394653279796abfc5eedb28e3a6dClear Stuck Bala...126700862021-11-15 13:13:0822 days 23 hrs ago0xba1217b56c84c42ad25cdcc69b6008bb05fd8c76 IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.000153645
0x59b15bdeb14824636a86282e188c5a9438d01b6e3b8d9186b34ccb5322ede458Approve125359422021-11-10 17:36:2627 days 18 hrs ago0x2b785018515be29c00d5494858f93ea171574ea5 IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.0000738276
0xf37416e9aae843920788868bc98b30a69ac1d15749abf63e960c0057be278aeaApprove124728322021-11-08 11:35:1830 days 44 mins ago0x17660a9a3fe5b678f41cc81e9a26c951c7b6f100 IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.0000738276
0x6e6297451e7bc464ef7fb58d990e0955b6a920606416a77008302b455ed582a8Approve124088352021-11-06 5:54:3032 days 6 hrs ago0x3190db112eeb0b22a0bd5f021d06e73ac6218d45 IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.0000738276
0xd29469731e6b829d4c05e342154a1d64fb929dd0aee166a898a45bddaf697aa2Transfer121869232021-10-29 8:04:0840 days 4 hrs ago0x16f2e3d4516c80647a72810ccbea3f44aa2cf610 IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.0119053431
0x42abb30aae8a14716784e4fc54c13d798147df9e42d3c37886835aabbcaae1baApprove120056962021-10-22 23:20:4546 days 12 hrs ago0x1dcfe8c0e21a1ec7843cc533a3495265eb959d96 IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.00007238
0x58cc9ba23ddaa1a222e2a1bd3a41d462c768bf6cceccc623f487e25429eb8facApprove120056872021-10-22 23:20:1646 days 12 hrs ago0x1dcfe8c0e21a1ec7843cc533a3495265eb959d96 IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.000221675
0x3e011429da33b120a6c30900a1122f87c2600449c2906074ece7227d9efd5bc3Approve116560542021-10-10 16:19:4058 days 19 hrs ago0xae5f436cc82503d8130a416bcee3cd7849d3683b IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.0002261085
0xbdc20560617a5f6927cc041e7033c3300f20676633ebc74a30aad9cdc97bef3dApprove115034162021-10-05 8:49:2164 days 3 hrs ago0x49277db0af55513991d6b54459bda17a8a20250e IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.0000738276
0xf272e624d41a5d6d57d2d6ab13ced082c3fd580b19ba02e9320d92f308197563Approve113957982021-10-01 14:33:3967 days 21 hrs ago0x920e3a1b29f01f6797aa18c8e44956375c84f36f IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.0000738276
0x07b87e272de2f88e9c5eae28f09f9633159812c87c67f8812ead26f708329adbApprove110226482021-09-18 13:13:2180 days 23 hrs ago0x1f55fc39b20eaeef8dd4073929c15e7453760095 IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.000221675
0x62ea01f57068f7f555ae0bcc59486c31fb523f2f0e56b7cecf9dac4b334df470Transfer109899432021-09-17 9:55:3382 days 2 hrs ago0x3d7da4cd9db54173a3e52f15236b170350db1ca2 IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.0110969268
0x4dd29bd61a816efcf1caee28bbccebb6f68a1e78230d56399e3eab310e034293Approve107085852021-09-07 13:47:0591 days 22 hrs ago0x3893074dabf8cb0679966a768f2a41051e15dd06 IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.000221675
0x92a44da426948721ba624e1b15f25186944ba7a115ac684e1c2f49394ebfd10eApprove106424282021-09-05 6:17:1094 days 6 hrs ago0x647409f7babaf79ef57ca709222c8b1cd3fb7fa4 IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.0002261085
0x784f5c2da1d86288eb5561485a4a79114a55d55d9d2bbd0d05d54fabfc66b295Approve106384602021-09-05 2:58:0394 days 9 hrs ago0x49277db0af55513991d6b54459bda17a8a20250e IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.0002261085
0xf6831b899491a5fb87984a8aed174107ac510d985fc50161568116a07b9ddfdbApprove105641182021-09-02 12:26:0296 days 23 hrs ago0x3d7da4cd9db54173a3e52f15236b170350db1ca2 IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.000221675
0x48817998adc6e079eb781cabbb86ae92a1be3bdb4c66e5e222fedc4eab947fadApprove105503202021-09-02 0:49:5097 days 11 hrs ago0x618eba184bbd1d9637617454ce0a3435a0e2a525 IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.000310345
0x83f2003308aea5141ad6c3b31bf8e4313812ff8ee0ad3f6941d72623dfeb5e2aApprove105020502021-08-31 7:59:2699 days 4 hrs ago0xeacee8441bcdc7a1ce8d311d84fc71be6844a059 IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.000221675
0xfeb309ab840a55b3f596140aa75df0c5da631fb542ff85b3f99c34628a1b6a43Approve104958522021-08-31 2:45:0999 days 9 hrs ago0x1d3b6f85d0d0cd42b917a35ec9644f8447f061d3 IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.0000738276
0x488ab6c9f234af11d5fc3cea9a32ad27f05765e653565e2bcfbbd245eb4ab2bcApprove104958332021-08-31 2:44:1299 days 9 hrs ago0x1d3b6f85d0d0cd42b917a35ec9644f8447f061d3 IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.0001478337
0xf399a281cedf94de58e6f7f8018e64358d3421572118e31ca47f53ca869f1b80Approve104956942021-08-31 2:36:5199 days 9 hrs ago0x1d3b6f85d0d0cd42b917a35ec9644f8447f061d3 IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.0000738276
0x59bdbafda41fe34b814c06d215623361fff41db8434519d0398876ef3b15931fApprove104502882021-08-29 12:16:34101 days 2 mins ago0xfba5d1afacc17c9765efe0bd608242090dc52299 IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.0002261085
0x7e8684dd80c161a88a4af61376188b8d4e8fbdf8f326ca4fcff7ce2f348b06d8Approve104211822021-08-28 11:49:57102 days 29 mins ago0x34077b3fc69340aadfc3f572027198d086d40b29 IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.0002261085
0x0ea1749fe4a82c39ff0bbe9817ffd0cc6a7d431d1002552408b27e83a7ef36d9Approve104166692021-08-28 8:00:48102 days 4 hrs ago0xb55ab023047374ec06229b1df691838056d4e6fd IN  0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80 BNB0.000221675
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xbcba9821e0241e0f4240baf44faa45df1339394653279796abfc5eedb28e3a6d126700862021-11-15 13:13:0822 days 23 hrs ago 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80x19c7b8d14be4abb352357550ec211a5ff8f828660.702083452009465374 BNB
0xd29469731e6b829d4c05e342154a1d64fb929dd0aee166a898a45bddaf697aa2121869232021-10-29 8:04:0840 days 4 hrs ago 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80x19c7b8d14be4abb352357550ec211a5ff8f828660.001282705063171241 BNB
0xd29469731e6b829d4c05e342154a1d64fb929dd0aee166a898a45bddaf697aa2121869232021-10-29 8:04:0840 days 4 hrs ago 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e8 0x817621e892158f0da829e9e1a4de5c1f6c8263300.008551367087808276 BNB
0xd29469731e6b829d4c05e342154a1d64fb929dd0aee166a898a45bddaf697aa2121869232021-10-29 8:04:0840 days 4 hrs ago PancakeSwap: Router v2 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80.010689208859760345 BNB
0xe90eda459487c0934ffb1ba92faa0952b9f69f439a896ef50ea57292d9f41e6b120056922021-10-22 23:20:3146 days 12 hrs ago 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80x19c7b8d14be4abb352357550ec211a5ff8f828660.001308597552016513 BNB
0xe90eda459487c0934ffb1ba92faa0952b9f69f439a896ef50ea57292d9f41e6b120056922021-10-22 23:20:3146 days 12 hrs ago 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e8 0x817621e892158f0da829e9e1a4de5c1f6c8263300.00872398368011009 BNB
0xe90eda459487c0934ffb1ba92faa0952b9f69f439a896ef50ea57292d9f41e6b120056922021-10-22 23:20:3146 days 12 hrs ago PancakeSwap: Router v2 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80.010904979600137613 BNB
0x9c70d0efd550513dddc6c6bbef7169dbcfcec6f8237e4bbeddbbbbedc7f8d20b116900912021-10-11 21:23:0657 days 14 hrs ago 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80x19c7b8d14be4abb352357550ec211a5ff8f828660.001321879234701505 BNB
0x9c70d0efd550513dddc6c6bbef7169dbcfcec6f8237e4bbeddbbbbedc7f8d20b116900912021-10-11 21:23:0657 days 14 hrs ago 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e8 0x817621e892158f0da829e9e1a4de5c1f6c8263300.00881252823134337 BNB
0x9c70d0efd550513dddc6c6bbef7169dbcfcec6f8237e4bbeddbbbbedc7f8d20b116900912021-10-11 21:23:0657 days 14 hrs ago PancakeSwap: Router v2 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80.011015660289179213 BNB
0xcf865428bc1b8e19e9892ae4881cc96793ed6e21c1f8c26f59011fc85d8fb7b7116562882021-10-10 16:31:2258 days 19 hrs ago 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80x19c7b8d14be4abb352357550ec211a5ff8f828660.001337833226039845 BNB
0xcf865428bc1b8e19e9892ae4881cc96793ed6e21c1f8c26f59011fc85d8fb7b7116562882021-10-10 16:31:2258 days 19 hrs ago 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e8 0x817621e892158f0da829e9e1a4de5c1f6c8263300.008918888173598968 BNB
0xcf865428bc1b8e19e9892ae4881cc96793ed6e21c1f8c26f59011fc85d8fb7b7116562882021-10-10 16:31:2258 days 19 hrs ago PancakeSwap: Router v2 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80.01114861021699871 BNB
0xea9cc392c1e819b9ac10ec37f89469ac36da43ad768658c37bac038ec5942ae4112404672021-09-26 3:47:4473 days 8 hrs ago 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80x19c7b8d14be4abb352357550ec211a5ff8f828660.001358075879694281 BNB
0xea9cc392c1e819b9ac10ec37f89469ac36da43ad768658c37bac038ec5942ae4112404672021-09-26 3:47:4473 days 8 hrs ago 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e8 0x817621e892158f0da829e9e1a4de5c1f6c8263300.009053839197961879 BNB
0xea9cc392c1e819b9ac10ec37f89469ac36da43ad768658c37bac038ec5942ae4112404672021-09-26 3:47:4473 days 8 hrs ago PancakeSwap: Router v2 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80.011317298997452349 BNB
0x55e760260aa2be89b51ceee9fea6e545c8df9c9a16d8ae42128406a968c47301110226752021-09-18 13:14:4280 days 23 hrs ago 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80x19c7b8d14be4abb352357550ec211a5ff8f828660.001365663873952567 BNB
0x55e760260aa2be89b51ceee9fea6e545c8df9c9a16d8ae42128406a968c47301110226752021-09-18 13:14:4280 days 23 hrs ago 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e8 0x817621e892158f0da829e9e1a4de5c1f6c8263300.009104425826350448 BNB
0x55e760260aa2be89b51ceee9fea6e545c8df9c9a16d8ae42128406a968c47301110226752021-09-18 13:14:4280 days 23 hrs ago PancakeSwap: Router v2 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80.01138053228293806 BNB
0x62ea01f57068f7f555ae0bcc59486c31fb523f2f0e56b7cecf9dac4b334df470109899432021-09-17 9:55:3382 days 2 hrs ago 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80x19c7b8d14be4abb352357550ec211a5ff8f828660.001371094777534936 BNB
0x62ea01f57068f7f555ae0bcc59486c31fb523f2f0e56b7cecf9dac4b334df470109899432021-09-17 9:55:3382 days 2 hrs ago 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e8 0x817621e892158f0da829e9e1a4de5c1f6c8263300.00914063185023291 BNB
0x62ea01f57068f7f555ae0bcc59486c31fb523f2f0e56b7cecf9dac4b334df470109899432021-09-17 9:55:3382 days 2 hrs ago PancakeSwap: Router v2 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80.011425789812791138 BNB
0x8aebd3f15b508b9e90590d67fc66cc2519c110c3ceda8a65edf7823d7aab8d82105503362021-09-02 0:50:3897 days 11 hrs ago 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80x19c7b8d14be4abb352357550ec211a5ff8f828660.001428713253739744 BNB
0x8aebd3f15b508b9e90590d67fc66cc2519c110c3ceda8a65edf7823d7aab8d82105503362021-09-02 0:50:3897 days 11 hrs ago 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e8 0x817621e892158f0da829e9e1a4de5c1f6c8263300.009524755024931632 BNB
0x8aebd3f15b508b9e90590d67fc66cc2519c110c3ceda8a65edf7823d7aab8d82105503362021-09-02 0:50:3897 days 11 hrs ago PancakeSwap: Router v2 0xdf162b5ae9c2f1d08b0992682bffb949dbcc71e80.011905943781164541 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BabyCaptainCardano

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-08-11
*/

// https://t.me/BabyCaptainCardano
// MASSIVE CaptrainCardano rewards!

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.7.4;


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

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

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

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

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // 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 (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

    constructor(address _owner) {
        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;
}

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

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address _token;

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

    IBEP20 CAPT = IBEP20(0x1AeAf7f0838B4A57D91E672EB7612dc1Bb2C076b);
    address WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    IDEXRouter router;

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

    mapping (address => Share) public shares;

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

    //SETMEUP, change this to 1 hour instead of 10mins
    uint256 public minPeriod = 45 minutes;
    uint256 public minDistribution = 1 * (10 ** 18);

    uint256 currentIndex;

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

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

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

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

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

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

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

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

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

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

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

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

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

        if(shareholderCount == 0) { return; }

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

        uint256 iterations = 0;

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

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

            gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }

    function shouldDistribute(address shareholder) internal view returns (bool) {
        return shareholderClaims[shareholder] + minPeriod < block.timestamp
                && getUnpaidEarnings(shareholder) > minDistribution;
    }

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

        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount > 0){
            totalDistributed = totalDistributed.add(amount);
            CAPT.transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }

    function claimDividend() external {
        distributeDividend(msg.sender);
    }

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

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

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

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

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

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

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

contract BabyCaptainCardano is IBEP20, Auth {
    using SafeMath for uint256;

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

    string constant _name = "BabyCaptainCardano";
    string constant _symbol = "BabyCaptain";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 100 * 10**9 * (10 ** _decimals);
    uint256 public _maxTxAmount = ( _totalSupply * 2 ) / 100;

    //max wallet holding of 2%
    uint256 public _maxWalletToken = ( _totalSupply * 2 ) / 100;

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

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

    uint256 liquidityFee    = 2;
    uint256 reflectionFee   = 20;
    uint256 marketingFee    = 3;
    uint256 public totalFee = 25;
    uint256 feeDenominator  = 100;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool public tradingOpen = false;

    DividendDistributor distributor;
    uint256 distributorGas = 500000;

    // Cooldown & timer functionality
    bool public buyCooldownEnabled = false;
    uint8 public cooldownTimerInterval = 5;
    mapping (address => uint) private cooldownTimer;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 10 / 10000; // 0.1% of supply
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

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

        distributor = new DividendDistributor(address(router));

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

        // No timelock for these people
        isTimelockExempt[msg.sender] = true;
        isTimelockExempt[DEAD] = true;
        isTimelockExempt[address(this)] = true;

        // TO DO, manually whitelist this
        //isFeeExempt[_presaleContract] = true;
        //isTxLimitExempt[_presaleContract] = true;
        //isDividendExempt[_presaleContract] = true;

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


        autoLiquidityReceiver = 0x19C7B8D14be4Abb352357550EC211A5fF8F82866;
        marketingFeeReceiver = 0x19C7B8D14be4Abb352357550EC211A5fF8F82866;

        _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 pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _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 approveMax(address spender) external returns (bool) {
        return approve(spender, uint256(-1));
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }

    //settting the maximum permitted wallet holding (percent of total supply)
     function setMaxWalletPercent(uint256 maxWallPercent) external authorized {
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;
    }

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

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

        // max wallet code
        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != marketingFeeReceiver && recipient != autoLiquidityReceiver){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}



        // cooldown timer, so a bot doesnt do quick trades! 1min gap between 2 trades.
        if (sender == pair &&
            buyCooldownEnabled &&
            !isTimelockExempt[recipient]) {
            require(cooldownTimer[recipient] < block.timestamp,"Please wait for cooldown between buys");
            cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval;
        }


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

        // Liquidity, Maintained at 25%
        if(shouldSwapBack()){ swapBack(); }

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

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

        // Dividend tracker
        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 checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

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

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).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 clearStuckBalance(uint256 amountPercentage) external authorized {
        uint256 amountBNB = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountBNB * amountPercentage / 100);
    }

    function blacklistAddress(address account, bool value) external onlyOwner{
        _isBlacklisted[account] = value;
    }


    // switch Trading
    function tradingStatus(bool _status) public authorized {
        tradingOpen = _status;
    }

    // enable cooldown between trades
    function cooldownEnabled(bool _status, uint8 _interval) public authorized {
        buyCooldownEnabled = _status;
        cooldownTimerInterval = _interval;
    }



    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] = WBNB;

        uint256 balanceBefore = address(this).balance;

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

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

        uint256 totalBNBFee = totalFee.sub(dynamicLiquidityFee.div(2));

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

        try distributor.deposit{value: amountBNBReflection}() {} catch {}
        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountBNBMarketing, gas: 30000}("");

        // only to supress warning msg
        tmpSuccess = false;

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


    function setTxLimit(uint256 amount) external authorized {
        _maxTxAmount = amount;
    }
    function prepareForPreSale() external authorized {
      _maxTxAmount = _totalSupply; // 100% of total supply
      _maxWalletToken = _totalSupply; // 100% of total supply
      liquidityFee = 0;
      reflectionFee = 0;
      marketingFee = 0;
      totalFee = 0;
      feeDenominator = 100;
    }



    function resetFees() external authorized {
      _maxTxAmount = ( _totalSupply * 2 ) / 100; //2% of total supply
      _maxWalletToken = ( _totalSupply * 2 ) / 100; // 2% of total supply
      liquidityFee    = 2;
      reflectionFee   = 20;
      marketingFee    = 3;
      totalFee = 25;
      feeDenominator  = 100;
    }

    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 setIsTimelockExempt(address holder, bool exempt) external authorized {
        isTimelockExempt[holder] = exempt;
    }

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


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



/* Airdrop Begins */


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

    uint256 SCCC = 0;

    require(addresses.length == tokens.length,"Mismatch between Address and token count");

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

    require(balanceOf(from) >= SCCC, "Not enough tokens to airdrop");

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

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

    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"airdrop","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"blacklistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"cooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","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":[],"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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prepareForPreSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTimelockExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","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":"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":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b0319908116731aeaf7f0838b4a57d91e672eb7612dc1bb2c076b1790915560038054821673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c17905560048054821661dead17905560058054909116905568056bc75e2d63100000600655671bc16d674ec800006007556064680ad78ebc5ac620000004600855600260105560146011819055600360125560196013556064808255601791909155601855601c805460ff199081169091556207a120601d55601e805461ffff191661050017905560208054909116600117905560065461271090600a0204602155348015620000f757600080fd5b50600080546001600160a01b0319908116339081178355825260016020818152604093849020805460ff1916909217909155601980549092167310ed43c718714eb63d5aa57b78b54704e256024e1791829055825163c45a015560e01b815292516001600160a01b03929092169263c45a01559260048083019392829003018186803b1580156200018757600080fd5b505afa1580156200019c573d6000803e3d6000fd5b505050506040513d6020811015620001b357600080fd5b5051600354604080516364e329cb60e11b81526001600160a01b0392831660048201523060248201529051919092169163c9c653969160448083019260209291908290030181600087803b1580156200020b57600080fd5b505af115801562000220573d6000803e3d6000fd5b505050506040513d60208110156200023757600080fd5b5051601a80546001600160a01b0319166001600160a01b03928316179055306000908152600a60209081526040808320601980548616855292529182902060001990555490519116906200028b90620003f3565b6001600160a01b03909116815260405190819003602001906000f080158015620002b9573d6000803e3d6000fd5b50601c8054610100600160a81b0319166101006001600160a01b0393841602179055336000818152600b60209081526040808320805460ff199081166001908117909255600c84528285208054821683179055600d8452828520805482168317905560048054881686528386208054831684179055308087528487208054841685179055601a5489168752600e8652848720805484168517905586528386208054831684179055549096168452818420805490961617909455601580547319c7b8d14be4abb352357550ec211a5ff8f828666001600160a01b031991821681179092556016805490911690911790556006548383526009825284832081905584519081529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a362000401565b610ec280620030af83390190565b612c9e80620004116000396000f3fe6080604052600436106103035760003560e01c80636fcba37711610190578063bf56b371116100dc578063f0b37c0411610095578063f84ba65d1161006f578063f84ba65d14610bf9578063f887ea4014610c34578063fe9fbb8014610c49578063ffb54a9914610c7c5761030a565b8063f0b37c0414610b58578063f2fde38b14610b8b578063f708a64f14610bbe5761030a565b8063bf56b37114610a82578063ca33e64c14610a97578063d51ed1c814610aac578063dd62ed3e14610ad6578063df20fd4914610b11578063e96fada214610b435761030a565b8063893d20e811610149578063a4b45c0011610123578063a4b45c00146109c6578063a8aa1b3114610a01578063a9059cbb14610a16578063b6a5d7de14610a4f5761030a565b8063893d20e81461095657806395d89b41146109875780639d1944f51461099c5761030a565b80636fcba3771461087e57806370a08231146108ba578063722b62ad146108ed57806378109e54146109025780637d1db4a51461091757806382bf293c1461092c5761030a565b80632b112e491161024f57806350db71fb116102085780635c85974f116101e25780635c85974f146107ef578063617fe0ed14610819578063658d4b7f1461082e5780636ddd1713146108695761030a565b806350db71fb1461076c5780635134f6ab146107a7578063571ac8b0146107bc5761030a565b80632b112e49146106595780632d48e8961461066e5780632d5945671461069e5780632f54bf6e146106d3578063313ce56714610706578063455a4396146107315761030a565b80631161ae39116102bc5780631da1db5e116102965780631da1db5e146105a75780631df4ccfc146105d1578063201e7991146105e657806323b872dd146106165761030a565b80631161ae391461052f57806318160ddd1461055f5780631cdd3be3146105745761030a565b8063025ff12f1461030f5780630445b667146103f057806306fdde0314610417578063095ea7b3146104a15780630d295980146104ee5780630ec4c6191461051a5761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b506103ee6004803603606081101561033257600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561035d57600080fd5b82018360208201111561036f57600080fd5b8035906020019184602083028401116401000000008311171561039157600080fd5b9193909290916020810190356401000000008111156103af57600080fd5b8201836020820111156103c157600080fd5b803590602001918460208302840111640100000000831117156103e357600080fd5b509092509050610c91565b005b3480156103fc57600080fd5b50610405610f93565b60408051918252519081900360200190f35b34801561042357600080fd5b5061042c610f99565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561046657818101518382015260200161044e565b50505050905090810190601f1680156104935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104ad57600080fd5b506104da600480360360408110156104c457600080fd5b506001600160a01b038135169060200135610fc5565b604080519115158252519081900360200190f35b3480156104fa57600080fd5b506103ee6004803603602081101561051157600080fd5b5035151561102c565b34801561052657600080fd5b506103ee611087565b34801561053b57600080fd5b506104da6004803603604081101561055257600080fd5b508035906020013561110b565b34801561056b57600080fd5b5061040561111f565b34801561058057600080fd5b506104da6004803603602081101561059757600080fd5b50356001600160a01b0316611125565b3480156105b357600080fd5b506103ee600480360360208110156105ca57600080fd5b503561113a565b3480156105dd57600080fd5b506104056111c5565b3480156105f257600080fd5b506103ee6004803603604081101561060957600080fd5b50803590602001356111cb565b34801561062257600080fd5b506104da6004803603606081101561063957600080fd5b506001600160a01b0381358116916020810135909116906040013561121e565b34801561066557600080fd5b506104056112e0565b34801561067a57600080fd5b506103ee6004803603604081101561069157600080fd5b5080359060200135611329565b3480156106aa57600080fd5b506103ee600480360360408110156106c157600080fd5b5080351515906020013560ff166113e8565b3480156106df57600080fd5b506104da600480360360208110156106f657600080fd5b50356001600160a01b0316611456565b34801561071257600080fd5b5061071b61146a565b6040805160ff9092168252519081900360200190f35b34801561073d57600080fd5b506103ee6004803603604081101561075457600080fd5b506001600160a01b038135169060200135151561146f565b34801561077857600080fd5b506103ee6004803603604081101561078f57600080fd5b506001600160a01b03813516906020013515156114dd565b3480156107b357600080fd5b506103ee611550565b3480156107c857600080fd5b506104da600480360360208110156107df57600080fd5b50356001600160a01b03166115be565b3480156107fb57600080fd5b506103ee6004803603602081101561081257600080fd5b50356115cc565b34801561082557600080fd5b506104da611619565b34801561083a57600080fd5b506103ee6004803603604081101561085157600080fd5b506001600160a01b0381351690602001351515611622565b34801561087557600080fd5b506104da611695565b34801561088a57600080fd5b506103ee600480360360808110156108a157600080fd5b508035906020810135906040810135906060013561169e565b3480156108c657600080fd5b50610405600480360360208110156108dd57600080fd5b50356001600160a01b0316611728565b3480156108f957600080fd5b5061071b611743565b34801561090e57600080fd5b50610405611751565b34801561092357600080fd5b50610405611757565b34801561093857600080fd5b506103ee6004803603602081101561094f57600080fd5b503561175d565b34801561096257600080fd5b5061096b6117ba565b604080516001600160a01b039092168252519081900360200190f35b34801561099357600080fd5b5061042c6117c9565b3480156109a857600080fd5b506103ee600480360360208110156109bf57600080fd5b50356117ee565b3480156109d257600080fd5b506103ee600480360360408110156109e957600080fd5b506001600160a01b038135811691602001351661184a565b348015610a0d57600080fd5b5061096b6118c0565b348015610a2257600080fd5b506104da60048036036040811015610a3957600080fd5b506001600160a01b0381351690602001356118cf565b348015610a5b57600080fd5b506103ee60048036036020811015610a7257600080fd5b50356001600160a01b03166118dc565b348015610a8e57600080fd5b50610405611946565b348015610aa357600080fd5b5061096b61194c565b348015610ab857600080fd5b5061040560048036036020811015610acf57600080fd5b503561195b565b348015610ae257600080fd5b5061040560048036036040811015610af957600080fd5b506001600160a01b038135811691602001351661199b565b348015610b1d57600080fd5b506103ee60048036036040811015610b3457600080fd5b508035151590602001356119c6565b348015610b4f57600080fd5b5061096b611a25565b348015610b6457600080fd5b506103ee60048036036020811015610b7b57600080fd5b50356001600160a01b0316611a34565b348015610b9757600080fd5b506103ee60048036036020811015610bae57600080fd5b50356001600160a01b0316611a98565b348015610bca57600080fd5b506103ee60048036036040811015610be157600080fd5b506001600160a01b0381351690602001351515611b49565b348015610c0557600080fd5b506103ee60048036036040811015610c1c57600080fd5b506001600160a01b0381351690602001351515611ccd565b348015610c4057600080fd5b5061096b611d40565b348015610c5557600080fd5b506104da60048036036020811015610c6c57600080fd5b50356001600160a01b0316611d4f565b348015610c8857600080fd5b506104da611d6d565b610c9a33611456565b610cd4576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6000838214610d145760405162461bcd60e51b8152600401808060200182810382526028815260200180612bbd6028913960400191505060405180910390fd5b60005b84811015610d4157838382818110610d2b57fe5b6020029190910135929092019150600101610d17565b5080610d4c87611728565b1015610d9f576040805162461bcd60e51b815260206004820152601c60248201527f4e6f7420656e6f75676820746f6b656e7320746f2061697264726f7000000000604482015290519081900360640190fd5b60005b84811015610ef157610de287878784818110610dba57fe5b905060200201356001600160a01b0316868685818110610dd657fe5b90506020020135611d76565b50600e6000878784818110610df357fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff16610ee957601c5461010090046001600160a01b03166314b6ca96878784818110610e3f57fe5b905060200201356001600160a01b0316600960008a8a87818110610e5f57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020546040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015610ed657600080fd5b505af1925050508015610ee7575060015b505b600101610da2565b506001600160a01b0386166000908152600e602052604090205460ff16610f8b57601c546001600160a01b03878116600081815260096020526040808220548151630a5b654b60e11b81526004810194909452602484015251610100909404909216926314b6ca969260448084019391929182900301818387803b158015610f7857600080fd5b505af1925050508015610f89575060015b505b505050505050565b60215481565b604080518082019091526012815271426162794361707461696e43617264616e6f60701b602082015290565b336000818152600a602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b61103533611d4f565b611074576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601c805460ff1916911515919091179055565b61109033611d4f565b6110cf576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6064600654600202816110de57fe5b04600755600654606490600202046008556002601055601460118190556003601255601960135560649055565b6000826111178361195b565b119392505050565b60065490565b600f6020526000908152604090205460ff1681565b61114333611d4f565b611182576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60165460405147916001600160a01b03169060648484020480156108fc02916000818181858888f193505050501580156111c0573d6000803e3d6000fd5b505050565b60135481565b6111d433611d4f565b611213576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601791909155601855565b6001600160a01b0383166000908152600a60209081526040808320338452909152812054600019146112cb576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600a825283812033825290915291909120546112a6918490611e57565b6001600160a01b0385166000908152600a602090815260408083203384529091529020555b6112d6848484611eee565b90505b9392505050565b600554600090611324906112fc906001600160a01b0316611728565b60045461131e90611315906001600160a01b0316611728565b600654906124bf565b906124bf565b905090565b61133233611d4f565b611371576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601c60019054906101000a90046001600160a01b03166001600160a01b0316632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b1580156113d457600080fd5b505af1158015610f8b573d6000803e3d6000fd5b6113f133611d4f565b611430576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601e805460ff19169215159290921761ff00191661010060ff9290921691909102179055565b6000546001600160a01b0390811691161490565b600990565b61147833611456565b6114b2576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6114e633611d4f565b611525576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b61155933611d4f565b611598576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600654600781905560085560006010819055601181905560128190556013556064601455565b600061102682600019610fc5565b6115d533611d4f565b611614576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600755565b601e5460ff1681565b61162b33611d4f565b61166a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60205460ff1681565b6116a733611d4f565b6116e6576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601084905560118390556012829055611709826117038686612501565b90612501565b6013556014819055600281046013541061172257600080fd5b50505050565b6001600160a01b031660009081526009602052604090205490565b601e54610100900460ff1681565b60085481565b60075481565b61176633611d4f565b6117a5576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60648160065402816117b357fe5b0460085550565b6000546001600160a01b031690565b60408051808201909152600b81526a2130b13ca1b0b83a30b4b760a91b602082015290565b6117f733611d4f565b611836576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b620b71b0811061184557600080fd5b601d55565b61185333611d4f565b611892576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601580546001600160a01b039384166001600160a01b03199182161790915560168054929093169116179055565b601a546001600160a01b031681565b60006112d9338484611eee565b6118e533611456565b61191f576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b601b5481565b6015546001600160a01b031681565b60006110266119686112e0565b601a546119959061198e90600290611988906001600160a01b0316611728565b9061255b565b859061255b565b906125b4565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b6119cf33611d4f565b611a0e576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6020805460ff191692151592909217909155602155565b6016546001600160a01b031681565b611a3d33611456565b611a77576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b611aa133611456565b611adb576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b611b5233611d4f565b611b91576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b0382163014801590611bb85750601a546001600160a01b03838116911614155b611bc157600080fd5b6001600160a01b0382166000908152600e60205260409020805460ff19168215801591909117909155611c6357601c5460408051630a5b654b60e11b81526001600160a01b038581166004830152600060248301819052925161010090940416926314b6ca969260448084019391929182900301818387803b158015611c4657600080fd5b505af1158015611c5a573d6000803e3d6000fd5b50505050611cc9565b601c546001600160a01b03838116600081815260096020526040808220548151630a5b654b60e11b81526004810194909452602484015251610100909404909216926314b6ca969260448084019391929182900301818387803b1580156113d457600080fd5b5050565b611cd633611d4f565b611d15576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6019546001600160a01b031681565b6001600160a01b031660009081526001602052604090205460ff1690565b601c5460ff1681565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600990915291822054611dc7918490611e57565b6001600160a01b038086166000908152600960205260408082209390935590851681522054611df69083612501565b6001600160a01b0380851660008181526009602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b60008184841115611ee65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611eab578181015183820152602001611e93565b50505050905090810190601f168015611ed85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60225460009060ff1615611f0e57611f07848484611d76565b90506112d9565b6001600160a01b03841660009081526001602052604090205460ff16158015611f5057506001600160a01b03831660009081526001602052604090205460ff16155b1561202c57601c5460ff16611fa3576040805162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015290519081900360640190fd5b6001600160a01b0384166000908152600f602052604090205460ff16158015611fe557506001600160a01b0383166000908152600f602052604090205460ff16155b61202c576040805162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b604482015290519081900360640190fd5b6001600160a01b03841660009081526001602052604090205460ff1615801561205e57506001600160a01b0383163014155b801561207857506004546001600160a01b03848116911614155b80156120925750601a546001600160a01b03848116911614155b80156120ac57506016546001600160a01b03848116911614155b80156120c657506015546001600160a01b03848116911614155b1561211d5760006120d684611728565b9050600854838201111561211b5760405162461bcd60e51b815260040180806020018281038252603e815260200180612c2b603e913960400191505060405180910390fd5b505b601a546001600160a01b03858116911614801561213c5750601e5460ff165b801561216157506001600160a01b0383166000908152600d602052604090205460ff16155b156121e5576001600160a01b0383166000908152601f602052604090205442116121bc5760405162461bcd60e51b8152600401808060200182810382526025815260200180612be56025913960400191505060405180910390fd5b601e546001600160a01b0384166000908152601f6020526040902061010090910460ff16420190555b6121ef84836125f6565b6121f7612664565b15612204576122046126b3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260099091529190912054612256918490611e57565b6001600160a01b03851660009081526009602052604081209190915561227b85612a96565b612285578261228f565b61228f8584612ab5565b6001600160a01b0385166000908152600960205260409020549091506122b59082612501565b6001600160a01b038086166000908152600960209081526040808320949094559188168152600e909152205460ff1661236157601c546001600160a01b03868116600081815260096020526040808220548151630a5b654b60e11b81526004810194909452602484015251610100909404909216926314b6ca969260448084019391929182900301818387803b15801561234e57600080fd5b505af192505050801561235f575060015b505b6001600160a01b0384166000908152600e602052604090205460ff166123fa57601c546001600160a01b03858116600081815260096020526040808220548151630a5b654b60e11b81526004810194909452602484015251610100909404909216926314b6ca969260448084019391929182900301818387803b1580156123e757600080fd5b505af19250505080156123f8575060015b505b601c60019054906101000a90046001600160a01b03166001600160a01b031663ffb2c479601d546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561245757600080fd5b505af1925050508015612468575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3506001949350505050565b60006112d983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e57565b6000828201838110156112d9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008261256a57506000611026565b8282028284828161257757fe5b04146112d95760405162461bcd60e51b8152600401808060200182810382526021815260200180612c0a6021913960400191505060405180910390fd5b60006112d983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b57565b6007548111158061261f57506001600160a01b0382166000908152600c602052604090205460ff165b611cc9576040805162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015290519081900360640190fd5b601a546000906001600160a01b03163314801590612685575060225460ff16155b8015612693575060205460ff165b801561132457505060215430600090815260096020526040902054101590565b6022805460ff191660011790556017546018546000916126d29161110b565b6126de576010546126e1565b60005b9050600061270560026119956013546119958660215461255b90919063ffffffff16565b9050600061271e826021546124bf90919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061275257fe5b6001600160a01b03928316602091820292909201015260035482519116908290600190811061277d57fe5b6001600160a01b0392831660209182029290920181019190915260195460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b838110156128175781810151838201526020016127ff565b505050509050019650505050505050600060405180830381600087803b15801561284057600080fd5b505af1158015612854573d6000803e3d6000fd5b50505050600061286d82476124bf90919063ffffffff16565b9050600061288861287f8860026125b4565b601354906124bf565b9050600061289d60026119958481878d61255b565b905060006128ba836119956011548761255b90919063ffffffff16565b905060006128d7846119956012548861255b90919063ffffffff16565b9050601c60019054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561292957600080fd5b505af19350505050801561293b575060015b506016546040516000916001600160a01b03169061753090849084818181858888f193505050503d806000811461298e576040519150601f19603f3d011682016040523d82523d6000602084013e612993565b606091505b5060009250508a159050612a7f576019546015546040805163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991879160c48082019260609290919082900301818588803b158015612a1657600080fd5b505af1158015612a2a573d6000803e3d6000fd5b50505050506040513d6060811015612a4157600080fd5b505060408051858152602081018c905281517f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506929181900390910190a15b50506022805460ff19169055505050505050505050565b6001600160a01b03166000908152600b602052604090205460ff161590565b600080612ad36014546119956013548661255b90919063ffffffff16565b30600090815260096020526040902054909150612af09082612501565b30600081815260096020908152604091829020939093558051848152905191926001600160a01b038816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3612b4f83826124bf565b949350505050565b60008183612ba65760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611eab578181015183820152602001611e93565b506000838581612bb257fe5b049594505050505056fe4d69736d61746368206265747765656e204164647265737320616e6420746f6b656e20636f756e74506c65617365207761697420666f7220636f6f6c646f776e206265747765656e2062757973536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f74616c20486f6c64696e672069732063757272656e746c79206c696d697465642c20796f752063616e206e6f74206275792074686174206d7563682ea26469706673582212203bb8e0be8c5e8506425df5381e4aeba09f56dae3aa08e3c6d756cf6a0f68025c64736f6c634300070600336080604052600180546001600160a01b0319908116731aeaf7f0838b4a57d91e672eb7612dc1bb2c076b179091556002805490911673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c1790556ec097ce7bc90715b34b9f1000000000600c55610a8c600d55670de0b6b3a7640000600e5534801561007d57600080fd5b50604051610ec2380380610ec2833981810160405260208110156100a057600080fd5b50516001600160a01b0381166100ca577310ed43c718714eb63d5aa57b78b54704e256024e6100cc565b805b600380546001600160a01b03929092166001600160a01b0319928316179055600080549091163317905550610dbc806101066000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610254578063f0fc6bca14610269578063ffb2c4791461027e578063ffd49c84146102a8576100dd565b8063ce7c2ac2146101e6578063d0e30db014610237578063e2d2e2191461023f576100dd565b80632d48e896116100bb5780632d48e896146101775780633a98ef39146101a75780634fab0ae8146101bc578063997664d7146101d1576100dd565b806311ce023d146100e257806314b6ca961461010957806328fd319814610144575b600080fd5b3480156100ee57600080fd5b506100f76102bd565b60408051918252519081900360200190f35b34801561011557600080fd5b506101426004803603604081101561012c57600080fd5b506001600160a01b0381351690602001356102c3565b005b34801561015057600080fd5b506100f76004803603602081101561016757600080fd5b50356001600160a01b03166103e8565b34801561018357600080fd5b506101426004803603604081101561019a57600080fd5b5080359060200135610474565b3480156101b357600080fd5b506100f7610496565b3480156101c857600080fd5b506100f761049c565b3480156101dd57600080fd5b506100f76104a2565b3480156101f257600080fd5b506102196004803603602081101561020957600080fd5b50356001600160a01b03166104a8565b60408051938452602084019290925282820152519081900360600190f35b6101426104c9565b34801561024b57600080fd5b506100f761075b565b34801561026057600080fd5b506100f7610761565b34801561027557600080fd5b50610142610767565b34801561028a57600080fd5b50610142600480360360208110156102a157600080fd5b5035610772565b3480156102b457600080fd5b506100f7610854565b600c5481565b6000546001600160a01b031633146102da57600080fd5b6001600160a01b03821660009081526007602052604090205415610301576103018261085a565b60008111801561032757506001600160a01b038216600090815260076020526040902054155b1561033a5761033582610982565b61036d565b8015801561035f57506001600160a01b03821660009081526007602052604090205415155b1561036d5761036d826109e3565b6001600160a01b03821660009081526007602052604090205460085461039e91839161039891610ad0565b90610b1b565b6008556001600160a01b03821660009081526007602052604090208190556103c581610b75565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b03811660009081526007602052604081205461040d5750600061046f565b6001600160a01b03821660009081526007602052604081205461042f90610b75565b6001600160a01b0384166000908152600760205260409020600101549091508082116104605760009250505061046f565b61046a8282610ad0565b925050505b919050565b6000546001600160a01b0316331461048b57600080fd5b600d91909155600e55565b60085481565b600e5481565b60095481565b60076020526000908152604090208054600182015460029092015490919083565b6000546001600160a01b031633146104e057600080fd5b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561052b57600080fd5b505afa15801561053f573d6000803e3d6000fd5b505050506040513d602081101561055557600080fd5b50516040805160028082526060820183529293506000929091602083019080368337505060025482519293506001600160a01b03169183915060009061059757fe5b6001600160a01b03928316602091820292909201015260018054835192169183919081106105c157fe5b6001600160a01b0392831660209182029290920181019190915260035460405163b6f9de9560e01b815260006004820181815230604484018190524260648501819052608060248601908152895160848701528951969098169763b6f9de9597349795968b969495939460a49091019187810191028083838b5b8381101561065357818101518382015260200161063b565b50505050905001955050505050506000604051808303818588803b15801561067a57600080fd5b505af115801561068e573d6000803e3d6000fd5b5050600154604080516370a0823160e01b815230600482015290516000955061071994508793506001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156106e757600080fd5b505afa1580156106fb573d6000803e3d6000fd5b505050506040513d602081101561071157600080fd5b505190610ad0565b6009549091506107299082610b1b565b600955600854600c546107539161074a916107449085610b92565b90610beb565b600b5490610b1b565b600b55505050565b600b5481565b600a5481565b6107703361085a565b565b6000546001600160a01b0316331461078957600080fd5b600454806107975750610851565b6000805a905060005b84831080156107ae57508381105b1561084c5783600f54106107c2576000600f555b6107ee6004600f54815481106107d457fe5b6000918252602090912001546001600160a01b0316610c2d565b1561081f5761081f6004600f548154811061080557fe5b6000918252602090912001546001600160a01b031661085a565b61083461082d5a8490610ad0565b8490610b1b565b92505a600f80546001908101909155909250016107a0565b505050505b50565b600d5481565b6001600160a01b03811660009081526007602052604090205461087c57610851565b6000610887826103e8565b9050801561097e57600a5461089c9082610b1b565b600a556001546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156108f557600080fd5b505af1158015610909573d6000803e3d6000fd5b505050506040513d602081101561091f57600080fd5b50506001600160a01b038216600090815260066020908152604080832042905560079091529020600201546109549082610b1b565b6001600160a01b03831660009081526007602052604090206002810191909155546103c590610b75565b5050565b600480546001600160a01b039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90910180546001600160a01b0319169091179055565b6004805460001981019081106109f557fe5b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610a2d57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600591829052604081205460048054919392916000198101908110610a7b57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610aab57fe5b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610b1283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c69565b90505b92915050565b600082820183811015610b12576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610b15600c54610744600b5485610b9290919063ffffffff16565b600082610ba157506000610b15565b82820282848281610bae57fe5b0414610b125760405162461bcd60e51b8152600401808060200182810382526021815260200180610d666021913960400191505060405180910390fd5b6000610b1283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610d00565b600d546001600160a01b0382166000908152600660205260408120549091429101108015610b155750600e54610c62836103e8565b1192915050565b60008184841115610cf85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610cbd578181015183820152602001610ca5565b50505050905090810190601f168015610cea5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610d4f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cbd578181015183820152602001610ca5565b506000838581610d5b57fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220ea4ee91f64030a5ff8440bac610366201ef321f576c64e8c9323577cb634406964736f6c63430007060033

Deployed ByteCode Sourcemap

11619:15083:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25845:788;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25845:788:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25845:788:0;;-1:-1:-1;25845:788:0;-1:-1:-1;25845:788:0;:::i;:::-;;13462:56;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;15136:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15558:216;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15558:216:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;20380:95;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20380:95:0;;;;:::i;22879:332::-;;;;;;;;;;;;;:::i;25660:150::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25660:150:0;;;;;;;:::i;14866:88::-;;;;;;;;;;;;;:::i;12628:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12628:47:0;-1:-1:-1;;;;;12628:47:0;;:::i;19998:218::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19998:218:0;;:::i;12787:28::-;;;;;;;;;;;;;:::i;24809:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24809:183:0;;;;;;;:::i;16070:364::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16070:364:0;;;;;;;;;;;;;;;;;:::i;25335:142::-;;;;;;;;;;;;;:::i;25000:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25000:183:0;;;;;;;:::i;20522:165::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20522:165:0;;;;;;;;;;;:::i;3440:103::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3440:103:0;-1:-1:-1;;;;;3440:103:0;;:::i;14960:80::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20224:123;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20224:123:0;;;;;;;;;;:::i;23838:130::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23838:130:0;;;;;;;;;;:::i;22561:306::-;;;;;;;;;;;;;:::i;15782:116::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15782:116:0;-1:-1:-1;;;;;15782:116:0;;:::i;22459:96::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22459:96:0;;:::i;13279:38::-;;;;;;;;;;;;;:::i;23574:120::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23574:120:0;;;;;;;;;;:::i;13425:30::-;;;;;;;;;;;;;:::i;23976:423::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23976:423:0;;;;;;;;;;;;;;;;;:::i;15306:105::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15306:105:0;-1:-1:-1;;;;;15306:105:0;;:::i;13324:38::-;;;;;;;;;;;;;:::i;12255:59::-;;;;;;;;;;;;;:::i;12158:56::-;;;;;;;;;;;;;:::i;16522:148::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16522:148:0;;:::i;15222:78::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;15222:78:0;;;;;;;;;;;;;;15046:84;;;;;;;;;;;;;:::i;25191:136::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25191:136:0;;:::i;24409:228::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;24409:228:0;;;;;;;;;;:::i;13062:19::-;;;;;;;;;;;;;:::i;15906:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15906:156:0;;;;;;;;:::i;3113:94::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3113:94:0;-1:-1:-1;;;;;3113:94:0;;:::i;13090:25::-;;;;;;;;;;;;;:::i;12860:36::-;;;;;;;;;;;;;:::i;25485:167::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25485:167:0;;:::i;15417:133::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15417:133:0;;;;;;;;;;:::i;24645:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24645:156:0;;;;;;;;;:::i;12903:35::-;;;;;;;;;;;;;:::i;3283:97::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3283:97:0;-1:-1:-1;;;;;3283:97:0;;:::i;3840:173::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3840:173:0;-1:-1:-1;;;;;3840:173:0;;:::i;23219:347::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23219:347:0;;;;;;;;;;:::i;23702:128::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23702:128:0;;;;;;;;;;:::i;13031:24::-;;;;;;;;;;;;;:::i;3614:107::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3614:107:0;-1:-1:-1;;;;;3614:107:0;;:::i;13122:31::-;;;;;;;;;;;;;:::i;25845:788::-;2829:19;2837:10;2829:7;:19::i;:::-;2821:38;;;;;-1:-1:-1;;;2821:38:0;;;;;;;;;;;;-1:-1:-1;;;2821:38:0;;;;;;;;;;;;;;;25961:12:::1;25994:33:::0;;::::1;25986:85;;;;-1:-1:-1::0;;;25986:85:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26084:6;26080:82;26094:20:::0;;::::1;26080:82;;;26145:6;;26152:1;26145:9;;;;;;;;;::::0;;;::::1;;26138:16:::0;;;::::1;::::0;-1:-1:-1;26116:3:0::1;;26080:82;;;;26197:4;26178:15;26188:4;26178:9;:15::i;:::-;:23;;26170:64;;;::::0;;-1:-1:-1;;;26170:64:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;26247:6;26243:249;26257:20:::0;;::::1;26243:249;;;26294:43;26309:4;26314:9;;26324:1;26314:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;26314:12:0::1;26327:6;;26334:1;26327:9;;;;;;;;;;;;;26294:14;:43::i;:::-;;26352:16;:30;26369:9;;26379:1;26369:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;26369:12:0::1;26352:30:::0;;-1:-1:-1;26352:30:0;::::1;::::0;;;;;;-1:-1:-1;26352:30:0;;::::1;;26348:137;;26403:11;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;26403:11:0::1;:20;26424:9:::0;;26434:1;26424:12;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;26424:12:0::1;26438:9;:23;26448:9;;26458:1;26448:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;26448:12:0::1;-1:-1:-1::0;;;;;26438:23:0::1;-1:-1:-1::0;;;;;26438:23:0::1;;;;;;;;;;;;;26403:59;;;;;;;;;;;;;-1:-1:-1::0;;;;;26403:59:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;26399:75:::0;::::1;26279:3;;26243:249;;;-1:-1:-1::0;;;;;;26529:22:0;::::1;;::::0;;;:16:::1;:22;::::0;;;;;::::1;;26525:105;;26568:11;::::0;-1:-1:-1;;;;;26595:15:0;;::::1;;::::0;;;:9:::1;:15;::::0;;;;;;26568:43;;-1:-1:-1;;;26568:43:0;;::::1;::::0;::::1;::::0;;;;;;;;;:11:::1;::::0;;::::1;::::0;;::::1;::::0;:20:::1;::::0;:43;;;;;26595:15;;26568:43;;;;;;26595:15;26568:11;:43;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;;;;;26564:59:::0;::::1;2861:1;25845:788:::0;;;;;:::o;13462:56::-;;;;:::o;15136:80::-;15208:5;;;;;;;;;;;;-1:-1:-1;;;15208:5:0;;;;15136:80;:::o;15558:216::-;15662:10;15633:4;15650:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;15650:32:0;;;;;;;;;;;:41;;;15707:37;;;;;;;15633:4;;15650:32;;15662:10;;15707:37;;;;;;;;-1:-1:-1;15762:4:0;15558:216;;;;;:::o;20380:95::-;2998:24;3011:10;2998:12;:24::i;:::-;2990:48;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;;;;20446:11:::1;:21:::0;;-1:-1:-1;;20446:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20380:95::o;22879:332::-;2998:24;3011:10;2998:12;:24::i;:::-;2990:48;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;;;;22967:3:::1;22946:12;;22961:1;22946:16;22944:26;;;;;;22929:12;:41:::0;23020:12:::1;::::0;23041:3:::1;::::0;23035:1:::1;23020:16;23018:26;23000:15;:44:::0;23093:1:::1;23075:12;:19:::0;23121:2:::1;23103:13;:20:::0;;;23150:1:::1;23132:12;:19:::0;23171:2:::1;23160:8;:13:::0;23200:3:::1;23182:21:::0;;22879:332::o;25660:150::-;25740:4;25796:6;25764:29;25784:8;25764:19;:29::i;:::-;:38;;25660:150;-1:-1:-1;;;25660:150:0:o;14866:88::-;14939:12;;14866:88;:::o;12628:47::-;;;;;;;;;;;;;;;:::o;19998:218::-;2998:24;3011:10;2998:12;:24::i;:::-;2990:48;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;;;;20142:20:::1;::::0;20134:74:::1;::::0;20102:21:::1;::::0;-1:-1:-1;;;;;20142:20:0::1;::::0;20204:3:::1;20173:28:::0;;::::1;:34;20134:74:::0;::::1;;;::::0;::::1;::::0;;;20173:34;20142:20;20134:74;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;3040:1;19998:218:::0;:::o;12787:28::-;;;;:::o;24809:183::-;2998:24;3011:10;2998:12;:24::i;:::-;2990:48;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;;;;24907:15:::1;:25:::0;;;;24943:26:::1;:41:::0;24809:183::o;16070:364::-;-1:-1:-1;;;;;16190:19:0;;16170:4;16190:19;;;:11;:19;;;;;;;;16210:10;16190:31;;;;;;;;-1:-1:-1;;16190:46:0;16187:180;;16286:69;;;;;;;;;;;-1:-1:-1;;;16286:69:0;;;;;;;;-1:-1:-1;;;;;16286:19:0;;-1:-1:-1;16286:19:0;;;:11;:19;;;;;16306:10;16286:31;;;;;;;;;;:69;;16322:6;;16286:35;:69::i;:::-;-1:-1:-1;;;;;16252:19:0;;;;;;:11;:19;;;;;;;;16272:10;16252:31;;;;;;;:103;16187:180;16386:40;16400:6;16408:9;16419:6;16386:13;:40::i;:::-;16379:47;;16070:364;;;;;;:::o;25335:142::-;25463:4;;25388:7;;25415:54;;25453:15;;-1:-1:-1;;;;;25463:4:0;25453:9;:15::i;:::-;25442:4;;25415:33;;25432:15;;-1:-1:-1;;;;;25442:4:0;25432:9;:15::i;:::-;25415:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;25408:61;;25335:142;:::o;25000:183::-;2998:24;3011:10;2998:12;:24::i;:::-;2990:48;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;;;;25110:11:::1;;;;;;;;;-1:-1:-1::0;;;;;25110:11:0::1;-1:-1:-1::0;;;;;25110:35:0::1;;25146:10;25158:16;25110:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;20522:165:::0;2998:24;3011:10;2998:12;:24::i;:::-;2990:48;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;;;;20607:18:::1;:28:::0;;-1:-1:-1;;20607:28:0::1;::::0;::::1;;::::0;;;::::1;-1:-1:-1::0;;20646:33:0::1;20607:28;;20646:33:::0;;;::::1;::::0;;;::::1;;::::0;;20522:165::o;3440:103::-;3495:4;3530:5;-1:-1:-1;;;;;3530:5:0;;;3519:16;;;;3440:103::o;14960:80::-;12087:1;14960:80;:::o;20224:123::-;2829:19;2837:10;2829:7;:19::i;:::-;2821:38;;;;;-1:-1:-1;;;2821:38:0;;;;;;;;;;;;-1:-1:-1;;;2821:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;20308:23:0;;;::::1;;::::0;;;:14:::1;:23;::::0;;;;:31;;-1:-1:-1;;20308:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20224:123::o;23838:130::-;2998:24;3011:10;2998:12;:24::i;:::-;2990:48;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;23927:24:0;;;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;23927:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23838:130::o;22561:306::-;2998:24;3011:10;2998:12;:24::i;:::-;2990:48;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;;;;22634:12:::1;::::0;22619::::1;:27:::0;;;22679:15:::1;:30:::0;-1:-1:-1;22742:12:0::1;:16:::0;;;22767:13:::1;:17:::0;;;22793:12:::1;:16:::0;;;22818:8:::1;:12:::0;22856:3:::1;22839:14;:20:::0;22561:306::o;15782:116::-;15837:4;15861:29;15869:7;-1:-1:-1;;15861:7:0;:29::i;22459:96::-;2998:24;3011:10;2998:12;:24::i;:::-;2990:48;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;;;;22526:12:::1;:21:::0;22459:96::o;13279:38::-;;;;;;:::o;23574:120::-;2998:24;3011:10;2998:12;:24::i;:::-;2990:48;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;23658:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;23658:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23574:120::o;13425:30::-;;;;;;:::o;23976:423::-;2998:24;3011:10;2998:12;:24::i;:::-;2990:48;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;;;;24119:12:::1;:28:::0;;;24158:13:::1;:30:::0;;;24199:12:::1;:28:::0;;;24249:52:::1;24214:13:::0;24249:33:::1;24134:13:::0;24174:14;24249:17:::1;:33::i;:::-;:37:::0;::::1;:52::i;:::-;24238:8;:63:::0;24312:14:::1;:32:::0;;;24389:1:::1;24329:15:::0;24374:16:::1;24363:8;;:27;24355:36;;;::::0;::::1;;23976:423:::0;;;;:::o;15306:105::-;-1:-1:-1;;;;;15390:18:0;15372:7;15390:18;;;:9;:18;;;;;;;15306:105::o;13324:38::-;;;;;;;;;:::o;12255:59::-;;;;:::o;12158:56::-;;;;:::o;16522:148::-;2998:24;3011:10;2998:12;:24::i;:::-;2990:48;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;;;;16659:3:::1;16640:14;16625:12;;:29;16624:38;;;;;;16606:15;:56:::0;-1:-1:-1;16522:148:0:o;15222:78::-;15274:7;15292:5;-1:-1:-1;;;;;15292:5:0;15222:78;:::o;15046:84::-;15120:7;;;;;;;;;;;;-1:-1:-1;;;15120:7:0;;;;15046:84;:::o;25191:136::-;2998:24;3011:10;2998:12;:24::i;:::-;2990:48;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;;;;25281:6:::1;25275:3;:12;25267:21;;;::::0;::::1;;25299:14;:20:::0;25191:136::o;24409:228::-;2998:24;3011:10;2998:12;:24::i;:::-;2990:48;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;;;;24528:21:::1;:46:::0;;-1:-1:-1;;;;;24528:46:0;;::::1;-1:-1:-1::0;;;;;;24528:46:0;;::::1;;::::0;;;24585:20:::1;:44:::0;;;;;::::1;::::0;::::1;;::::0;;24409:228::o;13062:19::-;;;-1:-1:-1;;;;;13062:19:0;;:::o;15906:156::-;15986:4;16010:44;16024:10;16036:9;16047:6;16010:13;:44::i;3113:94::-;2829:19;2837:10;2829:7;:19::i;:::-;2821:38;;;;;-1:-1:-1;;;2821:38:0;;;;;;;;;;;;-1:-1:-1;;;2821:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3173:19:0::1;;::::0;;;3195:4:::1;3173:19;::::0;;;;;;;:26;;-1:-1:-1;;3173:26:0::1;::::0;;::::1;::::0;;3113:94::o;13090:25::-;;;;:::o;12860:36::-;;;-1:-1:-1;;;;;12860:36:0;;:::o;25485:167::-;25553:7;25580:64;25621:22;:20;:22::i;:::-;25603:4;;25580:36;;25593:22;;25613:1;;25593:15;;-1:-1:-1;;;;;25603:4:0;25593:9;:15::i;:::-;:19;;:22::i;:::-;25580:8;;:12;:36::i;:::-;:40;;:64::i;15417:133::-;-1:-1:-1;;;;;15519:19:0;;;15501:7;15519:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;15417:133::o;24645:156::-;2998:24;3011:10;2998:12;:24::i;:::-;2990:48;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;;;;24737:11:::1;:22:::0;;-1:-1:-1;;24737:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;24770:13:::1;:23:::0;24645:156::o;12903:35::-;;;-1:-1:-1;;;;;12903:35:0;;:::o;3283:97::-;2829:19;2837:10;2829:7;:19::i;:::-;2821:38;;;;;-1:-1:-1;;;2821:38:0;;;;;;;;;;;;-1:-1:-1;;;2821:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3345:19:0::1;3367:5;3345:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;3345:27:0::1;::::0;;3283:97::o;3840:173::-;2829:19;2837:10;2829:7;:19::i;:::-;2821:38;;;;;-1:-1:-1;;;2821:38:0;;;;;;;;;;;;-1:-1:-1;;;2821:38:0;;;;;;;;;;;;;;;3916:5:::1;:11:::0;;-1:-1:-1;;;;;;3916:11:0::1;-1:-1:-1::0;;;;;3916:11:0;::::1;::::0;;::::1;::::0;;3938:19;;;-1:-1:-1;3938:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3938:26:0::1;::::0;;::::1;::::0;;;3980:25;;;;;;;::::1;::::0;;;;;;;;;::::1;3840:173:::0;:::o;23219:347::-;2998:24;3011:10;2998:12;:24::i;:::-;2990:48;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;23316:23:0;::::1;23334:4;23316:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;23353:4:0::1;::::0;-1:-1:-1;;;;;23343:14:0;;::::1;23353:4:::0;::::1;23343:14;;23316:41;23308:50;;;::::0;::::1;;-1:-1:-1::0;;;;;23369:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;23369:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;23413:146:::1;;23438:11;::::0;:31:::1;::::0;;-1:-1:-1;;;23438:31:0;;-1:-1:-1;;;;;23438:31:0;;::::1;;::::0;::::1;::::0;23467:1:::1;23438:31:::0;;;;;;;;:11:::1;::::0;;::::1;;::::0;:20:::1;::::0;:31;;;;;23467:1;;23438:31;;;;;;23467:1;23438:11;:31;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23413:146;;;23500:11;::::0;-1:-1:-1;;;;;23529:17:0;;::::1;;::::0;;;:9:::1;:17;::::0;;;;;;23500:47;;-1:-1:-1;;;23500:47:0;;::::1;::::0;::::1;::::0;;;;;;;;;:11:::1;::::0;;::::1;::::0;;::::1;::::0;:20:::1;::::0;:47;;;;;23529:17;;23500:47;;;;;;23529:17;23500:11;:47;::::1;;::::0;::::1;;;;::::0;::::1;23413:146;23219:347:::0;;:::o;23702:128::-;2998:24;3011:10;2998:12;:24::i;:::-;2990:48;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;-1:-1:-1;;;2990:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;23790:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;23790:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23702:128::o;13031:24::-;;;-1:-1:-1;;;;;13031:24:0;;:::o;3614:107::-;-1:-1:-1;;;;;3694:19:0;3670:4;3694:19;;;:14;:19;;;;;;;;;3614:107::o;13122:31::-;;;;;;:::o;18818:330::-;18948:53;;;;;;;;;;;-1:-1:-1;;;18948:53:0;;;;;;;;-1:-1:-1;;;;;18948:17:0;;18911:4;18948:17;;;:9;:17;;;;;;;:53;;18970:6;;18948:21;:53::i;:::-;-1:-1:-1;;;;;18928:17:0;;;;;;;:9;:17;;;;;;:73;;;;19035:20;;;;;;;:32;;19060:6;19035:24;:32::i;:::-;-1:-1:-1;;;;;19012:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;19083:35;;;;;;;19012:20;;19083:35;;;;;;;;;;;;;-1:-1:-1;19136:4:0;18818:330;;;;;:::o;499:192::-;585:7;621:12;613:6;;;;605:29;;;;-1:-1:-1;;;605:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;657:5:0;;;499:192::o;16678:2132::-;16790:6;;16770:4;;16790:6;;16787:63;;;16806:41;16821:6;16829:9;16840:6;16806:14;:41::i;:::-;16799:48;;;;16787:63;-1:-1:-1;;;;;16866:22:0;;;;;;:14;:22;;;;;;;;16865:23;:53;;;;-1:-1:-1;;;;;;16893:25:0;;;;;;:14;:25;;;;;;;;16892:26;16865:53;16862:227;;;16942:11;;;;16934:43;;;;;-1:-1:-1;;;16934:43:0;;;;;;;;;;;;-1:-1:-1;;;16934:43:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17001:22:0;;;;;;:14;:22;;;;;;;;17000:23;:53;;;;-1:-1:-1;;;;;;17028:25:0;;;;;;:14;:25;;;;;;;;17027:26;17000:53;16992:85;;;;;-1:-1:-1;;;16992:85:0;;;;;;;;;;;;-1:-1:-1;;;16992:85:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17134:22:0;;;;;;:14;:22;;;;;;;;17133:23;:53;;;;-1:-1:-1;;;;;;17160:26:0;;17181:4;17160:26;;17133:53;:84;;;;-1:-1:-1;17212:4:0;;-1:-1:-1;;;;;17191:26:0;;;17212:4;;17191:26;;17133:84;:105;;;;-1:-1:-1;17234:4:0;;-1:-1:-1;;;;;17221:17:0;;;17234:4;;17221:17;;17133:105;:142;;;;-1:-1:-1;17255:20:0;;-1:-1:-1;;;;;17242:33:0;;;17255:20;;17242:33;;17133:142;:180;;;;-1:-1:-1;17292:21:0;;-1:-1:-1;;;;;17279:34:0;;;17292:21;;17279:34;;17133:180;17129:372;;;17329:18;17350:20;17360:9;17350;:20::i;:::-;17329:41;;17418:15;;17407:6;17394:10;:19;17393:40;;17385:114;;;;-1:-1:-1;;;17385:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17129:372;;17619:4;;-1:-1:-1;;;;;17609:14:0;;;17619:4;;17609:14;:49;;;;-1:-1:-1;17640:18:0;;;;17609:49;:94;;;;-1:-1:-1;;;;;;17676:27:0;;;;;;:16;:27;;;;;;;;17675:28;17609:94;17605:299;;;-1:-1:-1;;;;;17728:24:0;;;;;;:13;:24;;;;;;17755:15;-1:-1:-1;17720:91:0;;;;-1:-1:-1;;;17720:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17871:21;;-1:-1:-1;;;;;17826:24:0;;;;;;:13;:24;;;;;17871:21;;;;;;17853:15;:39;17826:66;;17605:299;17959:28;17972:6;17980;17959:12;:28::i;:::-;18044:16;:14;:16::i;:::-;18041:35;;;18063:10;:8;:10::i;:::-;18135:53;;;;;;;;;;;-1:-1:-1;;;18135:53:0;;;;;;;;-1:-1:-1;;;;;18135:17:0;;-1:-1:-1;18135:17:0;;;:9;:17;;;;;;;;:53;;18157:6;;18135:21;:53::i;:::-;-1:-1:-1;;;;;18115:17:0;;;;;;:9;:17;;;;;:73;;;;18226:21;18125:6;18226:13;:21::i;:::-;:56;;18276:6;18226:56;;;18250:23;18258:6;18266;18250:7;:23::i;:::-;-1:-1:-1;;;;;18316:20:0;;;;;;:9;:20;;;;;;18201:81;;-1:-1:-1;18316:40:0;;18201:81;18316:24;:40::i;:::-;-1:-1:-1;;;;;18293:20:0;;;;;;;:9;:20;;;;;;;;:63;;;;18402:24;;;;;:16;:24;;;;;;;18398:119;;18447:11;;-1:-1:-1;;;;;18476:17:0;;;;;;;:9;:17;;;;;;;18447:47;;-1:-1:-1;;;18447:47:0;;;;;;;;;;;;;;:11;;;;;;;;:20;;:47;;;;;18476:17;;18447:47;;;;;;18476:17;18447:11;:47;;;;;;;;;;;;;;;;;;;;;;;;;18443:63;;-1:-1:-1;;;;;18533:27:0;;;;;;:16;:27;;;;;;;;18529:128;;18581:11;;-1:-1:-1;;;;;18613:20:0;;;;;;;:9;:20;;;;;;;18581:53;;-1:-1:-1;;;18581:53:0;;;;;;;;;;;;;;:11;;;;;;;;:20;;:53;;;;;18613:20;;18581:53;;;;;;18613:20;18581:11;:53;;;;;;;;;;;;;;;;;;;;;;;;;18577:69;;18673:11;;;;;;;;;-1:-1:-1;;;;;18673:11:0;-1:-1:-1;;;;;18673:19:0;;18693:14;;18673:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18669:51;18754:9;-1:-1:-1;;;;;18737:43:0;18746:6;-1:-1:-1;;;;;18737:43:0;;18765:14;18737:43;;;;;;;;;;;;;;;;;;-1:-1:-1;18798:4:0;;16678:2132;-1:-1:-1;;;;16678:2132:0:o;357:136::-;415:7;442:43;446:1;449;442:43;;;;;;;;;;;;;;;;;:3;:43::i;170:181::-;228:7;260:5;;;284:6;;;;276:46;;;;;-1:-1:-1;;;276:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;697:250;755:7;779:6;775:47;;-1:-1:-1;809:1:0;802:8;;775:47;846:5;;;850:1;846;:5;:1;870:5;;;;;:10;862:56;;;;-1:-1:-1;;;862:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;953:132;1011:7;1038:39;1042:1;1045;1038:39;;;;;;;;;;;;;;;;;:3;:39::i;19156:166::-;19253:12;;19243:6;:22;;:49;;;-1:-1:-1;;;;;;19269:23:0;;;;;;:15;:23;;;;;;;;19243:49;19235:79;;;;;-1:-1:-1;;;19235:79:0;;;;;;;;;;;;-1:-1:-1;;;19235:79:0;;;;;;;;;;;;;;19793:197;19880:4;;19842;;-1:-1:-1;;;;;19880:4:0;19866:10;:18;;;;:38;;-1:-1:-1;19898:6:0;;;;19897:7;19866:38;:62;;;;-1:-1:-1;19917:11:0;;;;19866:62;:116;;;;-1:-1:-1;;19969:13:0;;19959:4;19941:24;;;;:9;:24;;;;;;:41;;;19793:197::o;20699:1750::-;13583:6;:13;;-1:-1:-1;;13583:13:0;13592:4;13583:13;;;20794:15:::1;::::0;20811:26:::1;::::0;13583:6;;20778:60:::1;::::0;:15:::1;:60::i;:::-;:79;;20845:12;;20778:79;;;20841:1;20778:79;20748:109;;20868:23;20894:59;20951:1;20894:52;20937:8;;20894:38;20912:19;20894:13;;:17;;:38;;;;:::i;:59::-;20868:85;;20964:20;20987:34;21005:15;20987:13;;:17;;:34;;;;:::i;:::-;21058:16;::::0;;21072:1:::1;21058:16:::0;;;;;::::1;::::0;;20964:57;;-1:-1:-1;21034:21:0::1;::::0;21058:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;21058:16:0::1;21034:40;;21103:4;21085;21090:1;21085:7;;;;;;;;-1:-1:-1::0;;;;;21085:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;21129:4:::1;::::0;21119:7;;21129:4;::::1;::::0;21119;;21129;;21119:7;::::1;;;;;-1:-1:-1::0;;;;;21119:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:14;;;;21204:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;21204:188:0;;::::1;::::0;::::1;::::0;;;21146:21:::1;21204:188:::0;;;;;;21346:4:::1;21204:188:::0;;;;;;21366:15:::1;21204:188:::0;;;;;;;;;;;;;;;;;;;;;21170:21:::1;::::0;21204:6;;;::::1;::::0;:57:::1;::::0;21276:12;;21146:21;;21319:4;;21204:188;;;;;;;;;;::::1;::::0;::::1;::::0;;;21146:21;21204:188:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21405:17;21425:40;21451:13;21425:21;:25;;:40;;;;:::i;:::-;21405:60:::0;-1:-1:-1;21478:19:0::1;21500:40;21513:26;:19:::0;21537:1:::1;21513:23;:26::i;:::-;21500:8;::::0;;:12:::1;:40::i;:::-;21478:62:::0;-1:-1:-1;21553:26:0::1;21582:58;21638:1;21582:51;21478:62:::0;21582:51;:9;21596:19;21582:13:::1;:34::i;:58::-;21553:87;;21651:27;21681:45;21714:11;21681:28;21695:13;;21681:9;:13;;:28;;;;:::i;:45::-;21651:75;;21737:26;21766:44;21798:11;21766:27;21780:12;;21766:9;:13;;:27;;;;:::i;:44::-;21737:73;;21827:11;;;;;;;;;-1:-1:-1::0;;;;;21827:11:0::1;-1:-1:-1::0;;;;;21827:19:0::1;;21854;21827:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;21823:65:::0;21927:20:::1;::::0;21919:77:::1;::::0;21899:15:::1;::::0;-1:-1:-1;;;;;21927:20:0::1;::::0;21986:5:::1;::::0;21961:18;;21899:15;21919:77;21899:15;21919:77;21961:18;21927:20;21986:5;21919:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;22062:5:0::1;::::0;-1:-1:-1;;22083:19:0;;;-1:-1:-1;22080:362:0::1;;22118:6;::::0;22292:21:::1;::::0;22118:244:::1;::::0;;-1:-1:-1;;;22118:244:0;;22194:4:::1;22118:244;::::0;::::1;::::0;;;;;;;:6:::1;:244:::0;;;;;;;;;;-1:-1:-1;;;;;22292:21:0;;::::1;22118:244:::0;;;;22332:15:::1;22118:244:::0;;;;;;:6;;;::::1;::::0;:22:::1;::::0;22148:18;;22118:244;;;;;::::1;::::0;;;;;;;;;22148:18;22118:6;:244;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;22118:244:0;22382:48;;;;;22118:244:::1;22382:48:::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;22080:362;-1:-1:-1::0;;13601:6:0;:14;;-1:-1:-1;;13601:14:0;;;-1:-1:-1;;;;;;;;;20699:1750:0:o;19330:114::-;-1:-1:-1;;;;;19417:19:0;19392:4;19417:19;;;:11;:19;;;;;;;;19416:20;;19330:114::o;19452:333::-;19519:7;19539:17;19559:40;19584:14;;19559:20;19570:8;;19559:6;:10;;:20;;;;:::i;:40::-;19657:4;19639:24;;;;:9;:24;;;;;;19539:60;;-1:-1:-1;19639:39:0;;19539:60;19639:28;:39::i;:::-;19630:4;19612:24;;;;:9;:24;;;;;;;;;:66;;;;19694:42;;;;;;;19630:4;;-1:-1:-1;;;;;19694:42:0;;;;;;;;;;;;;19756:21;:6;19767:9;19756:10;:21::i;:::-;19749:28;19452:333;-1:-1:-1;;;;19452:333:0:o;1091:345::-;1177:7;1279:12;1272:5;1264:28;;;;-1:-1:-1;;;1264:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1303:9;1319:1;1315;:5;;;;;;;1091:345;-1:-1:-1;;;;;1091:345:0:o

Swarm Source

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