Contract 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e8

 

Contract Overview

Balance:
192 wei

BNB Value:
Less Than $0.01 (@ $408.81/BNB)

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xed2c67b023d2646e84958c97e6c05cbd11ddbe9de36ec32677b50ea72b37959eSet Wallet Amoun...105251452021-09-01 3:34:3516 days 7 hrs ago0x0ae22e52a04d798e9595f46240ba7a3349a26eba IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.00014211
0xf6b6914166c8f1e25d6bc7870aa6b2a200acfbbd1d472bdcc52b5977ce7723fcSet Is Tx Limit ...105251182021-09-01 3:33:1416 days 7 hrs ago0x0ae22e52a04d798e9595f46240ba7a3349a26eba IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000219355
0xd12b854e3165ded24b9a46bc4e0aebd81a39730684e15f41354bdb560303ba28Set Tx Limit105250632021-09-01 3:30:2916 days 7 hrs ago0x0ae22e52a04d798e9595f46240ba7a3349a26eba IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.00014222
0xcf137cd6451ae9123cfd4fc714de002f458f7cea1b8b42896190d6292720bb9cApprove104387232021-08-29 2:38:1819 days 8 hrs ago0x0047cf4c8df5bac70d475e8c4806901fcbf2b694 IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000310779
0x19a47599107e070f3d54750fc667a8122da554988544aed9e08473dfd7ca9854Approve100645182021-08-16 0:14:3532 days 10 hrs ago0xbce46c436d5a45b759995dbff664a264d5688854 IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000221985
0x108ab3fc28914cb0f72ca11d02869171f60c7e1a8216473651fd14e05b69bb02Approve97504152021-08-04 20:31:2843 days 14 hrs ago0x7ae75fa86212522399d36a00ca88f88c84580ceb IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000072535
0x85f1cc38825b0847eabfdead238bd9b4dfad6322dbade7cb28d0a0dbe0ccccc6Approve95612012021-07-29 0:39:5250 days 10 hrs ago0xa1de30e1ac507791d0e8519c160b8fcc17cfb028 IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000124065
0x1ac82633d8756d20baede3e8d1c411421ef7c42c6e875348f2d613726b971586Approve95610482021-07-29 0:32:1250 days 10 hrs ago0xa1de30e1ac507791d0e8519c160b8fcc17cfb028 IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000072535
0xb595d3410a98b6daf011c8891ea188233e270dfa40e9e7d56602e2b07ea129a9Set Fees95536522021-07-28 18:13:2850 days 16 hrs ago0x0ae22e52a04d798e9595f46240ba7a3349a26eba IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000189245
0x1dd081ac74bf1f97df34978e0bd14286dae73824794c90291811dd71fc4be5fdApprove95453652021-07-28 10:20:2851 days 33 mins ago0x5f001b039ef2266017c40f213e9c906ed34ecb5c IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000221985
0xb2bac8f37f55fb2723484e2863f1bc6dbf0b4e08364a7dffc302f2198ed92fd6Approve95267442021-07-27 17:25:3151 days 17 hrs ago0x590a7cc749d32fa936713d785864b1f17197a06f IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000221985
0x061ca76704454d83cc91f6e67a8504ea9a315cc10bfadb782fe600aa81ce6b62Approve94896642021-07-26 8:55:4153 days 1 hr ago0xdd58226864f10cabec40259698f560f8f4a7aff9 IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.0002264247
0x0e7473be7581142818491d92532efdd2845cdcd6f4330d8ab0dd80e27f26a131Approve94382622021-07-24 13:36:0554 days 21 hrs ago0xafd75dc6910d65170a4830ae824b44cd47e21030 IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000072535
0xedcab26d2053453a6166ca4d8b33c6cdb95dbf8019378b09a534c448b38cbf18Approve94271352021-07-24 4:15:3955 days 6 hrs ago0xa60e37bcde18156bb293a6debccdc702f2280ad0 IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000221985
0xb71d800bfbab55f69efa005fdc7921aeadef5c92aa1cf8988cc238769395144bApprove94174942021-07-23 20:13:2755 days 14 hrs ago0x48d296c9bccf097fb4dc3828f258a5209795597d IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000221985
0x9905f36f3b75bfd0252d9417e524f165c2396ddb826174442631c2d1d5f171ffApprove94135722021-07-23 16:55:2255 days 17 hrs ago0xf5f7ff35c76ae27765b1528a76b61ad210c12858 IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000221985
0x1174a492babc3c6f48492f7ba20284dd88c3325c9eaf22eed62981b6b860c3f8Approve94072632021-07-23 11:35:1555 days 23 hrs ago0xff19d883332e75300468195d2cd8324ff71b732b IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000221985
0x9e7eafeb2efe2536a4e1c5704344551eab49629bf632fef6e405a430ed35603dApprove94016232021-07-23 6:52:4656 days 4 hrs ago0x523a4a988229efeebd7211c0b3daf6456df36cfc IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000221985
0x34a02d61bbb91f6a0922bc592debccebb0919c6df69cc3dd2389a10276b47ad9Approve94003832021-07-23 5:50:4256 days 5 hrs ago0xf0c76b1818ba4dab7ff9d81aa823b77eb5280753 IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000221985
0xf5d6bf4996f8f16066f2f9c5ea40be255d6d7aa642d12a73253913c46d6d7e68Approve93978402021-07-23 3:43:3356 days 7 hrs ago0x957c3e0f35dc75347b5393d18b404aaf1b2757bc IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000221985
0xc8ec8f571bd46130edc24be977ebd5249bd3fcea94c1bd4247df490401cec17cApprove93942422021-07-23 0:43:3656 days 10 hrs ago0x069ddd2f7c4bf7d0b1aa1697e96641df2314217f IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000221985
0x9a32303ee696372c4c6c0d9d39b36af2e924ef7e8aeb8683429fa75475d9b922Approve93940002021-07-23 0:31:3056 days 10 hrs ago0x45b140778aba1c83391706b88499d958a8aa7918 IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000221985
0x6eb963106d585328d7a0ec3d0f888e7783a536729eb74a1f8fae5280a98f0530Approve93922862021-07-22 23:05:4856 days 11 hrs ago0xfd2b1d5aa43479afe96bc2b52c0a24c32666a8ae IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000221985
0x1a1defdc038a95b66bfe05e450139deab8b39c71268a117484f67b89ef355e91Approve93920432021-07-22 22:53:1456 days 12 hrs ago0xa966b599741876760be45e13c32edd29f5fe3a70 IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000221985
0x8d1f49f3a8e5d6d2e2073ee8a362aa569e5e36cfa6fe2b98283cc5551f9dca7aApprove93910732021-07-22 22:04:4456 days 12 hrs ago0xed424e4d1b0e643d111b44ff45d00c016b19e8d4 IN  0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80 BNB0.000221985
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xb478412aaa7c7df85a4a8901db7926a5cb3eaf07e230456936df6461cb8f738695268102021-07-27 17:29:2051 days 17 hrs ago 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80x0ae22e52a04d798e9595f46240ba7a3349a26eba0.000344520017014766 BNB
0xb478412aaa7c7df85a4a8901db7926a5cb3eaf07e230456936df6461cb8f738695268102021-07-27 17:29:2051 days 17 hrs ago 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e8 0x54c475667eca6e7cb9ec99ac2dc4c67cce133cc60.00009187200453727 BNB
0xb478412aaa7c7df85a4a8901db7926a5cb3eaf07e230456936df6461cb8f738695268102021-07-27 17:29:2051 days 17 hrs ago PancakeSwap: Router v2 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80.000436392021552037 BNB
0x7e3fe36a4283c3725bc67d816d23ccefade174169053c6bb9c4418b8f89cf64094896772021-07-26 8:56:2053 days 1 hr ago 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80x0ae22e52a04d798e9595f46240ba7a3349a26eba0.00035958884832341 BNB
0x7e3fe36a4283c3725bc67d816d23ccefade174169053c6bb9c4418b8f89cf64094896772021-07-26 8:56:2053 days 1 hr ago 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e8 0x54c475667eca6e7cb9ec99ac2dc4c67cce133cc60.000095890359552909 BNB
0x7e3fe36a4283c3725bc67d816d23ccefade174169053c6bb9c4418b8f89cf64094896772021-07-26 8:56:2053 days 1 hr ago PancakeSwap: Router v2 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80.00045547920787632 BNB
0x65c3618cc6e1c84a4e8e8d80e34c104437c0968b8a0ef79da14625439058ce1994772602021-07-25 22:28:4653 days 12 hrs ago 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80x0ae22e52a04d798e9595f46240ba7a3349a26eba0.000360085856806074 BNB
0x65c3618cc6e1c84a4e8e8d80e34c104437c0968b8a0ef79da14625439058ce1994772602021-07-25 22:28:4653 days 12 hrs ago 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e8 0x54c475667eca6e7cb9ec99ac2dc4c67cce133cc60.000096022895148286 BNB
0x65c3618cc6e1c84a4e8e8d80e34c104437c0968b8a0ef79da14625439058ce1994772602021-07-25 22:28:4653 days 12 hrs ago PancakeSwap: Router v2 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80.000456108751954361 BNB
0xaedae854771895fd5db31000ac309a0523366827c2235c96398866c850505e4494271402021-07-24 4:15:5455 days 6 hrs ago 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80x0ae22e52a04d798e9595f46240ba7a3349a26eba0.000365402948550563 BNB
0xaedae854771895fd5db31000ac309a0523366827c2235c96398866c850505e4494271402021-07-24 4:15:5455 days 6 hrs ago 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e8 0x54c475667eca6e7cb9ec99ac2dc4c67cce133cc60.00009744078628015 BNB
0xaedae854771895fd5db31000ac309a0523366827c2235c96398866c850505e4494271402021-07-24 4:15:5455 days 6 hrs ago PancakeSwap: Router v2 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80.000462843734830714 BNB
0x32af4607dd25558694e622155fe223539745eccf3784f5005cb7f9f82b9e136194175052021-07-23 20:14:0055 days 14 hrs ago 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80x0ae22e52a04d798e9595f46240ba7a3349a26eba0.000367213825120141 BNB
0x32af4607dd25558694e622155fe223539745eccf3784f5005cb7f9f82b9e136194175052021-07-23 20:14:0055 days 14 hrs ago 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e8 0x54c475667eca6e7cb9ec99ac2dc4c67cce133cc60.000097923686698704 BNB
0x32af4607dd25558694e622155fe223539745eccf3784f5005cb7f9f82b9e136194175052021-07-23 20:14:0055 days 14 hrs ago PancakeSwap: Router v2 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80.000465137511818846 BNB
0x28181e3f3d79b6639b43975d14f71c8e3ad23e1e68ddec441092fd7e9e2cf13594135882021-07-23 16:56:1055 days 17 hrs ago 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80x0ae22e52a04d798e9595f46240ba7a3349a26eba0.000371624945750825 BNB
0x28181e3f3d79b6639b43975d14f71c8e3ad23e1e68ddec441092fd7e9e2cf13594135882021-07-23 16:56:1055 days 17 hrs ago 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e8 0x54c475667eca6e7cb9ec99ac2dc4c67cce133cc60.000099099985533553 BNB
0x28181e3f3d79b6639b43975d14f71c8e3ad23e1e68ddec441092fd7e9e2cf13594135882021-07-23 16:56:1055 days 17 hrs ago PancakeSwap: Router v2 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80.000470724931284379 BNB
0x68570a17da92dbdf2799eed1e57cb222ec6ada36dd82e921e3a8e49f7b552d5e94072772021-07-23 11:35:5755 days 23 hrs ago 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80x0ae22e52a04d798e9595f46240ba7a3349a26eba0.000368333964371492 BNB
0x68570a17da92dbdf2799eed1e57cb222ec6ada36dd82e921e3a8e49f7b552d5e94072772021-07-23 11:35:5755 days 23 hrs ago 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e8 0x54c475667eca6e7cb9ec99ac2dc4c67cce133cc60.000098222390499064 BNB
0x68570a17da92dbdf2799eed1e57cb222ec6ada36dd82e921e3a8e49f7b552d5e94072772021-07-23 11:35:5755 days 23 hrs ago PancakeSwap: Router v2 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80.000466556354870557 BNB
0x412d5d025d6855222c1bd284567733d0ee5f08ad8c3b93757bb8fb6a97e5b20494030982021-07-23 8:06:3256 days 2 hrs ago 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80x0ae22e52a04d798e9595f46240ba7a3349a26eba0.000344754008205475 BNB
0x412d5d025d6855222c1bd284567733d0ee5f08ad8c3b93757bb8fb6a97e5b20494030982021-07-23 8:06:3256 days 2 hrs ago 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e8 0x54c475667eca6e7cb9ec99ac2dc4c67cce133cc60.000091934402188126 BNB
0x412d5d025d6855222c1bd284567733d0ee5f08ad8c3b93757bb8fb6a97e5b20494030982021-07-23 8:06:3256 days 2 hrs ago PancakeSwap: Router v2 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80.000436688410393602 BNB
0x50aa0dc0bee48bfc06132ed9c5d5e93c89c55f4597ad2791c930b27c5f76d50694021742021-07-23 7:20:2056 days 3 hrs ago 0x4ba2ebdd7d234282aa05c5e35f72e6b5a89044e80x0ae22e52a04d798e9595f46240ba7a3349a26eba0.000346086246197584 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BlackbeardBUSD

Compiler Version
v0.7.4+commit.3f05b770

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//BLACKBEARDBUSD
/* 
The ultimate BUSD raider token.
*/
/* Tokenomics:
    * 1 Trillion Total Supply
    *  10% BUSD reflection
    *  4% marketing fee
    *  3% team fee
    *  Max wallet size of 2%
    *  Max TX of 1% of supply
*/
//SPDX-License-Identifier: MIT

pragma solidity ^0.7.4;

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
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 BUSD = IBEP20(0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56);
    address WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    IDEXRouter router;

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

    mapping (address => Share) public shares;

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

    uint256 public minPeriod = 1 hours;
    uint256 public minDistribution = 1 * (10 ** 18) / (100); // Minimum sending is 0.1 BUSD

    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 = BUSD.balanceOf(address(this));

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

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

        uint256 amount = BUSD.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);
            BUSD.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 BlackbeardBUSD is IBEP20, Auth {
    using SafeMath for uint256;

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

    string constant _name = "BlackbeardBUSD";
    string constant _symbol = "BBB";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1000000000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply / 100; // 1%
    uint256 public _maxWalletAmount = _totalSupply / 50; // 2%

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

    mapping (address => bool) isBlacklist;
    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isMaxWalletExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) isDividendExempt;

    uint256 reflectionFee = 10;
    uint256 marketingFee = 7;
    uint256 totalFee = 17;

    address public marketingFeeReceiver;

    uint256 targetLiquidity = 25;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    DividendDistributor public distributor;
    uint256 distributorGas = 500000;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 20000; // 0.005%
    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;
        isFeeExempt[address(this)] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;
        
        isMaxWalletExempt[pair] = true;
        isMaxWalletExempt[address(this)] = true;
        
        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;

        marketingFeeReceiver = msg.sender;

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

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external 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);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(!isBlacklist[sender],"Sender is in blacklist");
        require(!isBlacklist[recipient],"Recipient is in blacklist");

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        checkTxLimit(sender, amount);

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

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

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

        checkWalletLimit(recipient);

        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);
        checkWalletLimit(recipient);
        emit Transfer(sender, recipient, amount);
        return true;
    }

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

    function checkWalletLimit(address recipient) internal view {
        require(_balances[recipient] <= _maxWalletAmount || isMaxWalletExempt[recipient], "Wallet Amount Limit Exceeded");
    }

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

    function takeFee(address sender, address receiver, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(100);

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

        return amount.sub(feeAmount);
    }

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

    function swapBack() internal swapping {
        uint256 amountToSwap = swapThreshold;

        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 amountBNBReflection = amountBNB.mul(reflectionFee).div(totalFee);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalFee);

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

    function setTxLimit(uint256 amount) external authorized {
        require(amount >= _totalSupply / 1000, "Check minimum MaxTx amount");
        _maxTxAmount = amount;
    }

    function setWalletAmountLimit(uint256 amount) external authorized {
        require(amount >= _totalSupply / 100, "Check minimum Wallet amount");
        _maxWalletAmount = amount;
    }

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

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

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

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

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

    function setFees(uint256 _reflectionFee, uint256 _marketingFee) external authorized {
        reflectionFee = _reflectionFee;
        marketingFee = _marketingFee;
        totalFee = _reflectionFee.add(_marketingFee);
    }

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

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

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

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":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"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":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsBlacklist","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":"setIsMaxWalletExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setWalletAmountLimit","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273e9e7cea3dedca5984780bafc599bd69add087d56600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960ff16600a0a64e8d4a51000026006556064600654816200015257fe5b046007556032600654816200016357fe5b04600855600a60105560076011556011601255601960145560646015556207a1206019556001601a60006101000a81548160ff021916908315150217905550614e2060065481620001b057fe5b04601b55348015620001c157600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550507310ed43c718714eb63d5aa57b78b54704e256024e601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031957600080fd5b505afa1580156200032e573d6000803e3d6000fd5b505050506040513d60208110156200034557600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015620003ff57600080fd5b505af115801562000414573d6000803e3d6000fd5b505050506040513d60208110156200042b57600080fd5b8101908080519060200190929190505050601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620005709062000a61565b808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f080158015620005ad573d6000803e3d6000fd5b50601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a362000a6f565b6119d0806200429783390190565b6138188062000a7f6000396000f3fe60806040526004361061021e5760003560e01c8063893d20e811610123578063dd62ed3e116100ab578063f2fde38b1161006f578063f2fde38b14610c37578063f708a64f14610c88578063f84ba65d14610ce5578063f887ea4014610d42578063fe9fbb8014610d8357610225565b8063dd62ed3e14610a88578063df20fd4914610b0d578063e01bb68814610b54578063e96fada214610ba5578063f0b37c0414610be657610225565b8063a8aa1b31116100f2578063a8aa1b31146108e7578063a9059cbb14610928578063b6a5d7de14610999578063bfe10928146109ea578063c04a78ad14610a2b57610225565b8063893d20e8146107a057806389e3fd8a146107e157806395d89b411461081c5780639d1944f5146108ac57610225565b8063313ce567116101a65780636c0a24eb116101755780636c0a24eb1461065b5780636ddd17131461068657806370a08231146106b3578063787d07f2146107185780637d1db4a51461077557610225565b8063313ce5671461052e578063571ac8b01461055c5780635c85974f146105c3578063658d4b7f146105fe57610225565b806318160ddd116101ed57806318160ddd1461039b57806323b872dd146103c65780632b112e49146104575780632d48e896146104825780632f54bf6e146104c757610225565b80630445b6671461022a57806306fdde0314610255578063095ea7b3146102e55780630b78f9c01461035657610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f610dea565b6040518082815260200191505060405180910390f35b34801561026157600080fd5b5061026a610df0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102aa57808201518184015260208101905061028f565b50505050905090810190601f1680156102d75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f157600080fd5b5061033e6004803603604081101561030857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e2d565b60405180821515815260200191505060405180910390f35b34801561036257600080fd5b506103996004803603604081101561037957600080fd5b810190808035906020019092919080359060200190929190505050610f1f565b005b3480156103a757600080fd5b506103b0610fc5565b6040518082815260200191505060405180910390f35b3480156103d257600080fd5b5061043f600480360360608110156103e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fcf565b60405180821515815260200191505060405180910390f35b34801561046357600080fd5b5061046c6111cf565b6040518082815260200191505060405180910390f35b34801561048e57600080fd5b506104c5600480360360408110156104a557600080fd5b810190808035906020019092919080359060200190929190505050611251565b005b3480156104d357600080fd5b50610516600480360360208110156104ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611365565b60405180821515815260200191505060405180910390f35b34801561053a57600080fd5b506105436113be565b604051808260ff16815260200191505060405180910390f35b34801561056857600080fd5b506105ab6004803603602081101561057f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113c7565b60405180821515815260200191505060405180910390f35b3480156105cf57600080fd5b506105fc600480360360208110156105e657600080fd5b81019080803590602001909291905050506113fa565b005b34801561060a57600080fd5b506106596004803603604081101561062157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611502565b005b34801561066757600080fd5b506106706115d8565b6040518082815260200191505060405180910390f35b34801561069257600080fd5b5061069b6115de565b60405180821515815260200191505060405180910390f35b3480156106bf57600080fd5b50610702600480360360208110156106d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115f1565b6040518082815260200191505060405180910390f35b34801561072457600080fd5b506107736004803603604081101561073b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061163a565b005b34801561078157600080fd5b5061078a611710565b6040518082815260200191505060405180910390f35b3480156107ac57600080fd5b506107b5611716565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107ed57600080fd5b5061081a6004803603602081101561080457600080fd5b810190808035906020019092919050505061173f565b005b34801561082857600080fd5b50610831611846565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610871578082015181840152602081019050610856565b50505050905090810190601f16801561089e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108b857600080fd5b506108e5600480360360208110156108cf57600080fd5b8101908080359060200190929190505050611883565b005b3480156108f357600080fd5b506108fc611917565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093457600080fd5b506109816004803603604081101561094b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061193d565b60405180821515815260200191505060405180910390f35b3480156109a557600080fd5b506109e8600480360360208110156109bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611952565b005b3480156109f657600080fd5b506109ff611a27565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a3757600080fd5b50610a8660048036036040811015610a4e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611a4d565b005b348015610a9457600080fd5b50610af760048036036040811015610aab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b23565b6040518082815260200191505060405180910390f35b348015610b1957600080fd5b50610b5260048036036040811015610b3057600080fd5b8101908080351515906020019092919080359060200190929190505050611baa565b005b348015610b6057600080fd5b50610ba360048036036020811015610b7757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c4a565b005b348015610bb157600080fd5b50610bba611d09565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610bf257600080fd5b50610c3560048036036020811015610c0957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d2f565b005b348015610c4357600080fd5b50610c8660048036036020811015610c5a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e05565b005b348015610c9457600080fd5b50610ce360048036036040811015610cab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611f67565b005b348015610cf157600080fd5b50610d4060048036036040811015610d0857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612272565b005b348015610d4e57600080fd5b50610d57612348565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d8f57600080fd5b50610dd260048036036020811015610da657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061236e565b60405180821515815260200191505060405180910390f35b601b5481565b60606040518060400160405280600e81526020017f426c61636b626561726442555344000000000000000000000000000000000000815250905090565b600081600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b610f283361236e565b610f9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8160108190555080601181905550610fbb81836123c490919063ffffffff16565b6012819055505050565b6000600654905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146111bb5761113a826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244c9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6111c684848461250c565b90509392505050565b600061124c6111ff600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115f1565b61123e61122d600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115f1565b600654612be490919063ffffffff16565b612be490919063ffffffff16565b905090565b61125a3361236e565b6112cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561134957600080fd5b505af115801561135d573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b60006113f3827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610e2d565b9050919050565b6114033361236e565b611475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b6103e86006548161148257fe5b048110156114f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436865636b206d696e696d756d204d6178547820616d6f756e7400000000000081525060200191505060405180910390fd5b8060078190555050565b61150b3361236e565b61157d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60085481565b601a60009054906101000a900460ff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6116433361236e565b6116b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6117483361236e565b6117ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b6064600654816117c657fe5b0481101561183c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f436865636b206d696e696d756d2057616c6c657420616d6f756e74000000000081525060200191505060405180910390fd5b8060088190555050565b60606040518060400160405280600381526020017f4242420000000000000000000000000000000000000000000000000000000000815250905090565b61188c3361236e565b6118fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b620b71b0811061190d57600080fd5b8060198190555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061194a33848461250c565b905092915050565b61195b33611365565b6119cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a563361236e565b611ac8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611bb33361236e565b611c25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b81601a60006101000a81548160ff02191690831515021790555080601b819055505050565b611c533361236e565b611cc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d3833611365565b611daa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611e0e33611365565b611e80576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f214f574e4552000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b611f703361236e565b611fe2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561206c5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61207557600080fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561218357601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561216657600080fd5b505af115801561217a573d6000803e3d6000fd5b5050505061226e565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561225557600080fd5b505af1158015612269573d6000803e3d6000fd5b505050505b5050565b61227b3361236e565b6122ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21415554484f52495a454400000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080828401905083811015612442576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008383111582906124f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124be5780820151818401526020810190506124a3565b50505050905090810190601f1680156124eb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156125ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e64657220697320696e20626c61636b6c6973740000000000000000000081525060200191505060405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561268e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526563697069656e7420697320696e20626c61636b6c6973740000000000000081525060200191505060405180910390fd5b601c60009054906101000a900460ff16156126b5576126ae848484612c2e565b9050612bdd565b6126bf8483612e0a565b6126c7612eda565b156126d5576126d4612fb1565b5b61275e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244c9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006127ac85613382565b6127b657826127c2565b6127c18585856133d9565b5b905061281681600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c490919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128628461351d565b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166129a157601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561298557600080fd5b505af1925050508015612996575060015b61299f576129a0565b5b5b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612ae057601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9685600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015612ac457600080fd5b505af1925050508015612ad5575060015b612ade57612adf565b5b5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796019546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015612b5757600080fd5b505af1925050508015612b68575060015b612b7157612b72565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150505b9392505050565b6000612c2683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061244c565b905092915050565b6000612cb9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244c9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d4e82600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c490919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d9a8361351d565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60075481111580612e645750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612ed6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f5458204c696d697420457863656564656400000000000000000000000000000081525060200191505060405180910390fd5b5050565b6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612f475750601c60009054906101000a900460ff16155b8015612f5f5750601a60009054906101000a900460ff165b8015612fac5750601b54600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601c60006101000a81548160ff0219169083151502179055506000601b5490506060600267ffffffffffffffff81118015612fed57600080fd5b5060405190808252806020026020018201604052801561301c5781602001602082028036833780820191505090505b509050308160008151811061302d57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061309757fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561319a57808201518184015260208101905061317f565b505050509050019650505050505050600060405180830381600087803b1580156131c357600080fd5b505af11580156131d7573d6000803e3d6000fd5b5050505060006131f08247612be490919063ffffffff16565b9050600061321d60125461320f6010548561362b90919063ffffffff16565b6136b190919063ffffffff16565b9050600061324a60125461323c6011548661362b90919063ffffffff16565b6136b190919063ffffffff16565b9050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156132b657600080fd5b505af1935050505080156132c8575060015b6132d1576132d2565b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168161753090604051806000019050600060405180830381858888f193505050503d8060008114613357576040519150601f19603f3d011682016040523d82523d6000602084013e61335c565b606091505b5050505050505050506000601c60006101000a81548160ff021916908315150217905550565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008061340460646133f66012548661362b90919063ffffffff16565b6136b190919063ffffffff16565b905061345881600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123c490919063ffffffff16565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36135138184612be490919063ffffffff16565b9150509392505050565b600854600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115806135b65750600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f57616c6c657420416d6f756e74204c696d69742045786365656465640000000081525060200191505060405180910390fd5b50565b60008083141561363e57600090506136ab565b600082840290508284828161364f57fe5b04146136a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806137c26021913960400191505060405180910390fd5b809150505b92915050565b60006136f383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506136fb565b905092915050565b600080831182906137a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561376c578082015181840152602081019050613751565b50505050905090810190601f1680156137995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816137b357fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220c657ff18c40069d465b1bf10f81633b17fe2e5b8cdaf285da89478768371facb64736f6c63430007040033608060405273e9e7cea3dedca5984780bafc599bd69add087d56600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506ec097ce7bc90715b34b9f1000000000600c55610e10600d55662386f26fc10000600e553480156100de57600080fd5b506040516119d03803806119d08339818101604052602081101561010157600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610161577310ed43c718714eb63d5aa57b78b54704e256024e610163565b805b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506117dd806101f36000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed1461033b578063f0fc6bca14610366578063ffb2c4791461037d578063ffd49c84146103b8576100dd565b8063ce7c2ac214610293578063d0e30db014610306578063e2d2e21914610310576100dd565b80632d48e896116100bb5780632d48e896146101cd5780633a98ef39146102125780634fab0ae81461023d578063997664d714610268576100dd565b806311ce023d146100e257806314b6ca961461010d57806328fd319814610168575b600080fd5b3480156100ee57600080fd5b506100f76103e3565b6040518082815260200191505060405180910390f35b34801561011957600080fd5b506101666004803603604081101561013057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103e9565b005b34801561017457600080fd5b506101b76004803603602081101561018b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106a8565b6040518082815260200191505060405180910390f35b3480156101d957600080fd5b50610210600480360360408110156101f057600080fd5b8101908080359060200190929190803590602001909291905050506107c2565b005b34801561021e57600080fd5b5061022761082c565b6040518082815260200191505060405180910390f35b34801561024957600080fd5b50610252610832565b6040518082815260200191505060405180910390f35b34801561027457600080fd5b5061027d610838565b6040518082815260200191505060405180910390f35b34801561029f57600080fd5b506102e2600480360360208110156102b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061083e565b60405180848152602001838152602001828152602001935050505060405180910390f35b61030e610868565b005b34801561031c57600080fd5b50610325610ce3565b6040518082815260200191505060405180910390f35b34801561034757600080fd5b50610350610ce9565b6040518082815260200191505060405180910390f35b34801561037257600080fd5b5061037b610cef565b005b34801561038957600080fd5b506103b6600480360360208110156103a057600080fd5b8101908080359060200190929190505050610cfa565b005b3480156103c457600080fd5b506103cd610e74565b6040518082815260200191505060405180910390f35b600c5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461044157600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156104965761049582610e7a565b5b6000811180156104e857506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156104fb576104f682611140565b61055d565b60008114801561054d57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b1561055c5761055b826111ef565b5b5b6105c6816105b8600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546008546113c890919063ffffffff16565b61141290919063ffffffff16565b60088190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061065e600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461149a565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156106fd57600090506107bd565b600061074a600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461149a565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116107a5576000925050506107bd565b6107b881836113c890919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461081a57600080fd5b81600d8190555080600e819055505050565b60085481565b600e5481565b60095481565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108c057600080fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561094b57600080fd5b505afa15801561095f573d6000803e3d6000fd5b505050506040513d602081101561097557600080fd5b810190808051906020019092919050505090506060600267ffffffffffffffff811180156109a257600080fd5b506040519080825280602002602001820160405280156109d15781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600081518110610a0457fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110610a6e57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b815260040180858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015610b66578082015181840152602081019050610b4b565b50505050905001955050505050506000604051808303818588803b158015610b8d57600080fd5b505af1158015610ba1573d6000803e3d6000fd5b50505050506000610c7e83600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610c3557600080fd5b505afa158015610c49573d6000803e3d6000fd5b505050506040513d6020811015610c5f57600080fd5b81019080805190602001909291905050506113c890919063ffffffff16565b9050610c958160095461141290919063ffffffff16565b600981905550610cd8610cc7600854610cb984600c546114cc90919063ffffffff16565b61155290919063ffffffff16565b600b5461141290919063ffffffff16565b600b81905550505050565b600b5481565b600a5481565b610cf833610e7a565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d5257600080fd5b600060048054905090506000811415610d6b5750610e71565b6000805a905060005b8483108015610d8257508381105b15610e6c5783600f5410610d99576000600f819055505b610ddb6004600f5481548110610dab57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661159c565b15610e2357610e226004600f5481548110610df257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e7a565b5b610e48610e395a846113c890919063ffffffff16565b8461141290919063ffffffff16565b92505a9150600f600081548092919060010191905055508080600101915050610d74565b505050505b50565b600d5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610eca5761113d565b6000610ed5826106a8565b9050600081111561113b57610ef581600a5461141290919063ffffffff16565b600a81905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610f8e57600080fd5b505af1158015610fa2573d6000803e3d6000fd5b505050506040513d6020811015610fb857600080fd5b81019080805190602001909291905050505042600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061106381600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461141290919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506110f4600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461149a565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600480549050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60046001600480549050038154811061120457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548154811061127b57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546005600060046001600480549050038154811061131c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600480548061139057fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b600061140a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611600565b905092915050565b600080828401905083811015611490576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006114c5600c546114b7600b54856114cc90919063ffffffff16565b61155290919063ffffffff16565b9050919050565b6000808314156114df576000905061154c565b60008284029050828482816114f057fe5b0414611547576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117876021913960400191505060405180910390fd5b809150505b92915050565b600061159483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116c0565b905092915050565b600042600d54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011080156115f95750600e546115f7836106a8565b115b9050919050565b60008383111582906116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611672578082015181840152602081019050611657565b50505050905090810190601f16801561169f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808311829061176c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611731578082015181840152602081019050611716565b50505050905090810190601f16801561175e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161177857fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220135838b07db5a8343f04aeda40dbeb07d913e7b355f882c5b32b66df61688b2564736f6c63430007040033

Deployed ByteCode Sourcemap

11838:9781:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13245:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14617:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15039:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20589:227;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14347:88;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15551:364;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21474:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21135:183;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3671:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14441:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15263:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19322:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20057:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12424:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13208:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14787:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20185:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12363:48;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14703:78;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19505:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14527:84;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21326:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13095:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15387:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3344:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13123:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20449:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14898:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20971:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20824:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12936:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3514:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4071:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19702:347;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20313:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13064:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3845:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13245:51;;;;:::o;14617:80::-;14665:13;14689:5;;;;;;;;;;;;;;;;;14682:12;;14617:80;:::o;15039:216::-;15114:4;15166:6;15131:11;:23;15143:10;15131:23;;;;;;;;;;;;;;;:32;15155:7;15131:32;;;;;;;;;;;;;;;:41;;;;15209:7;15188:37;;15197:10;15188:37;;;15218:6;15188:37;;;;;;;;;;;;;;;;;;15243:4;15236:11;;15039:216;;;;:::o;20589:227::-;3229:24;3242:10;3229:12;:24::i;:::-;3221:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20700:14:::1;20684:13;:30;;;;20740:13;20725:12;:28;;;;20775:33;20794:13;20775:14;:18;;:33;;;;:::i;:::-;20764:8;:44;;;;20589:227:::0;;:::o;14347:88::-;14402:7;14420:12;;14413:19;;14347:88;:::o;15551:364::-;15651:4;15714:2;15671:11;:19;15683:6;15671:19;;;;;;;;;;;;;;;:31;15691:10;15671:31;;;;;;;;;;;;;;;;:46;15668:180;;15767:69;15803:6;15767:69;;;;;;;;;;;;;;;;;:11;:19;15779:6;15767:19;;;;;;;;;;;;;;;:31;15787:10;15767:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;15733:11;:19;15745:6;15733:19;;;;;;;;;;;;;;;:31;15753:10;15733:31;;;;;;;;;;;;;;;:103;;;;15668:180;15867:40;15881:6;15889:9;15900:6;15867:13;:40::i;:::-;15860:47;;15551:364;;;;;:::o;21474:142::-;21527:7;21554:54;21592:15;21602:4;;;;;;;;;;;21592:9;:15::i;:::-;21554:33;21571:15;21581:4;;;;;;;;;;;21571:9;:15::i;:::-;21554:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;21547:61;;21474:142;:::o;21135:183::-;3229:24;3242:10;3229:12;:24::i;:::-;3221:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21245:11:::1;;;;;;;;;;;:35;;;21281:10;21293:16;21245:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21135:183:::0;;:::o;3671:103::-;3726:4;3761:5;;;;;;;;;;;3750:16;;:7;:16;;;3743:23;;3671:103;;;:::o;14441:80::-;14493:5;12290:1;14502:16;;14441:80;:::o;15263:116::-;15318:4;15342:29;15350:7;15367:2;15342:7;:29::i;:::-;15335:36;;15263:116;;;:::o;19322:175::-;3229:24;3242:10;3229:12;:24::i;:::-;3221:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19422:4:::1;19407:12;;:19;;;;;;19397:6;:29;;19389:68;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;19483:6;19468:12;:21;;;;19322:175:::0;:::o;20057:120::-;3229:24;3242:10;3229:12;:24::i;:::-;3221:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20163:6:::1;20141:11;:19;20153:6;20141:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;20057:120:::0;;:::o;12424:51::-;;;;:::o;13208:30::-;;;;;;;;;;;;;:::o;14787:105::-;14853:7;14871:9;:18;14881:7;14871:18;;;;;;;;;;;;;;;;14864:25;;14787:105;;;:::o;20185:120::-;3229:24;3242:10;3229:12;:24::i;:::-;3221:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20291:6:::1;20269:11;:19;20281:6;20269:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;20185:120:::0;;:::o;12363:48::-;;;;:::o;14703:78::-;14755:7;14773:5;;;;;;;;;;;14766:12;;14703:78;:::o;19505:189::-;3229:24;3242:10;3229:12;:24::i;:::-;3221:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19615:3:::1;19600:12;;:18;;;;;;19590:6;:28;;19582:68;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;19680:6;19661:16;:25;;;;19505:189:::0;:::o;14527:84::-;14577:13;14601:7;;;;;;;;;;;;;;;;;14594:14;;14527:84;:::o;21326:136::-;3229:24;3242:10;3229:12;:24::i;:::-;3221:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21416:6:::1;21410:3;:12;21402:21;;;::::0;::::1;;21451:3;21434:14;:20;;;;21326:136:::0;:::o;13095:19::-;;;;;;;;;;;;;:::o;15387:156::-;15467:4;15491:44;15505:10;15517:9;15528:6;15491:13;:44::i;:::-;15484:51;;15387:156;;;;:::o;3344:94::-;3060:19;3068:10;3060:7;:19::i;:::-;3052:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3426:4:::1;3404:14:::0;:19:::1;3419:3;3404:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3344:94:::0;:::o;13123:38::-;;;;;;;;;;;;;:::o;20449:132::-;3229:24;3242:10;3229:12;:24::i;:::-;3221:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20567:6:::1;20539:17;:25;20557:6;20539:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;20449:132:::0;;:::o;14898:133::-;14982:7;15000:11;:19;15012:6;15000:19;;;;;;;;;;;;;;;:28;15020:7;15000:28;;;;;;;;;;;;;;;;14993:35;;14898:133;;;;:::o;20971:156::-;3229:24;3242:10;3229:12;:24::i;:::-;3221:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21077:8:::1;21063:11;;:22;;;;;;;;;;;;;;;;;;21112:7;21096:13;:23;;;;20971:156:::0;;:::o;20824:139::-;3229:24;3242:10;3229:12;:24::i;:::-;3221:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20934:21:::1;20911:20;;:44;;;;;;;;;;;;;;;;;;20824:139:::0;:::o;12936:35::-;;;;;;;;;;;;;:::o;3514:97::-;3060:19;3068:10;3060:7;:19::i;:::-;3052:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3598:5:::1;3576:14;:19;3591:3;3576:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3514:97:::0;:::o;4071:173::-;3060:19;3068:10;3060:7;:19::i;:::-;3052:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4155:3:::1;4147:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;4191:4;4169:14:::0;:19:::1;4184:3;4169:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4211:25;4232:3;4211:25;;;;;;;;;;;;;;;;;;;;4071:173:::0;:::o;19702:347::-;3229:24;3242:10;3229:12;:24::i;:::-;3221:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19817:4:::1;19799:23;;:6;:23;;;;:41;;;;;19836:4;;;;;;;;;;;19826:14;;:6;:14;;;;19799:41;19791:50;;;::::0;::::1;;19879:6;19852:16;:24;19869:6;19852:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;19899:6;19896:146;;;19921:11;;;;;;;;;;;:20;;;19942:6;19950:1;19921:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19896:146;;;19983:11;;;;;;;;;;;:20;;;20004:6;20012:9;:17;20022:6;20012:17;;;;;;;;;;;;;;;;19983:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19896:146;19702:347:::0;;:::o;20313:128::-;3229:24;3242:10;3229:12;:24::i;:::-;3221:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20427:6:::1;20401:15;:23;20417:6;20401:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;20313:128:::0;;:::o;13064:24::-;;;;;;;;;;;;;:::o;3845:107::-;3901:4;3925:14;:19;3940:3;3925:19;;;;;;;;;;;;;;;;;;;;;;;;;3918:26;;3845:107;;;:::o;401:181::-;459:7;479:9;495:1;491;:5;479:17;;520:1;515;:6;;507:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;573:1;566:8;;;401:181;;;;:::o;730:192::-;816:7;849:1;844;:6;;852:12;836:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;876:9;892:1;888;:5;876:17;;913:1;906:8;;;730:192;;;;;:::o;15923:1087::-;16015:4;16041:11;:19;16053:6;16041:19;;;;;;;;;;;;;;;;;;;;;;;;;16040:20;16032:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16106:11;:22;16118:9;16106:22;;;;;;;;;;;;;;;;;;;;;;;;;16105:23;16097:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16173:6;;;;;;;;;;;16170:63;;;16189:41;16204:6;16212:9;16223:6;16189:14;:41::i;:::-;16182:48;;;;16170:63;16253:28;16266:6;16274;16253:12;:28::i;:::-;16297:16;:14;:16::i;:::-;16294:35;;;16316:10;:8;:10::i;:::-;16294:35;16361:53;16383:6;16361:53;;;;;;;;;;;;;;;;;:9;:17;16371:6;16361:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16341:9;:17;16351:6;16341:17;;;;;;;;;;;;;;;:73;;;;16427:22;16452:21;16466:6;16452:13;:21::i;:::-;:67;;16513:6;16452:67;;;16476:34;16484:6;16492:9;16503:6;16476:7;:34::i;:::-;16452:67;16427:92;;16553:40;16578:14;16553:9;:20;16563:9;16553:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;16530:9;:20;16540:9;16530:20;;;;;;;;;;;;;;;:63;;;;16606:27;16623:9;16606:16;:27::i;:::-;16650:16;:24;16667:6;16650:24;;;;;;;;;;;;;;;;;;;;;;;;;16646:96;;16681:11;;;;;;;;;;;:20;;;16702:6;16710:9;:17;16720:6;16710:17;;;;;;;;;;;;;;;;16681:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16677:63;;;;;;16646:96;16756:16;:27;16773:9;16756:27;;;;;;;;;;;;;;;;;;;;;;;;;16752:105;;16790:11;;;;;;;;;;;:20;;;16811:9;16822;:20;16832:9;16822:20;;;;;;;;;;;;;;;;16790:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16786:69;;;;;;16752:105;16873:11;;;;;;;;;;;:19;;;16893:14;;16873:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16869:51;;;;;;16954:9;16937:43;;16946:6;16937:43;;;16965:14;16937:43;;;;;;;;;;;;;;;;;;16998:4;16991:11;;;15923:1087;;;;;;:::o;588:136::-;646:7;673:43;677:1;680;673:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;666:50;;588:136;;;;:::o;17022:368::-;17115:4;17152:53;17174:6;17152:53;;;;;;;;;;;;;;;;;:9;:17;17162:6;17152:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;17132:9;:17;17142:6;17132:17;;;;;;;;;;;;;;;:73;;;;17239:32;17264:6;17239:9;:20;17249:9;17239:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17216:9;:20;17226:9;17216:20;;;;;;;;;;;;;;;:55;;;;17282:27;17299:9;17282:16;:27::i;:::-;17342:9;17325:35;;17334:6;17325:35;;;17353:6;17325:35;;;;;;;;;;;;;;;;;;17378:4;17371:11;;17022:368;;;;;:::o;17398:166::-;17495:12;;17485:6;:22;;:49;;;;17511:15;:23;17527:6;17511:23;;;;;;;;;;;;;;;;;;;;;;;;;17485:49;17477:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17398:166;;:::o;18241:197::-;18290:4;18328;;;;;;;;;;;18314:18;;:10;:18;;;;:38;;;;;18346:6;;;;;;;;;;;18345:7;18314:38;:62;;;;;18365:11;;;;;;;;;;;18314:62;:116;;;;;18417:13;;18389:9;:24;18407:4;18389:24;;;;;;;;;;;;;;;;:41;;18314:116;18307:123;;18241:197;:::o;18446:868::-;13362:4;13353:6;;:13;;;;;;;;;;;;;;;;;;18495:20:::1;18518:13;;18495:36;;18544:21;18582:1;18568:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18544:40;;18613:4;18595;18600:1;18595:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;18639:4;;;;;;;;;;;18629;18634:1;18629:7;;;;;;;;;;;;;:14;;;;;;;;;::::0;::::1;18656:21;18680;18656:45;;18714:6;;;;;;;;;;;:57;;;18786:12;18813:1;18829:4;18856;18876:15;18714:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18915:17;18935:40;18961:13;18935:21;:25;;:40;;;;:::i;:::-;18915:60;;18988:27;19018:42;19051:8;;19018:28;19032:13;;19018:9;:13;;:28;;;;:::i;:::-;:32;;:42;;;;:::i;:::-;18988:72;;19071:26;19100:41;19132:8;;19100:27;19114:12;;19100:9;:13;;:27;;;;:::i;:::-;:31;;:41;;;;:::i;:::-;19071:70;;19158:11;;;;;;;;;;;:19;;;19185;19158:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;19154:65;;;;;;19237:20;;;;;;;;;;;19229:34;;19271:18;19296:5;19229:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13368:1;;;;;;13380:5:::0;13371:6;;:14;;;;;;;;;;;;;;;;;;18446:868::o;17771:114::-;17833:4;17858:11;:19;17870:6;17858:19;;;;;;;;;;;;;;;;;;;;;;;;;17857:20;17850:27;;17771:114;;;:::o;17893:340::-;17978:7;17998:17;18018:29;18043:3;18018:20;18029:8;;18018:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;17998:49;;18087:39;18116:9;18087;:24;18105:4;18087:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;18060:9;:24;18078:4;18060:24;;;;;;;;;;;;;;;:66;;;;18167:4;18142:42;;18151:6;18142:42;;;18174:9;18142:42;;;;;;;;;;;;;;;;;;18204:21;18215:9;18204:6;:10;;:21;;;;:::i;:::-;18197:28;;;17893:340;;;;;:::o;17572:191::-;17674:16;;17650:9;:20;17660:9;17650:20;;;;;;;;;;;;;;;;:40;;:72;;;;17694:17;:28;17712:9;17694:28;;;;;;;;;;;;;;;;;;;;;;;;;17650:72;17642:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17572:191;:::o;928:250::-;986:7;1015:1;1010;:6;1006:47;;;1040:1;1033:8;;;;1006:47;1065:9;1081:1;1077;:5;1065:17;;1110:1;1105;1101;:5;;;;;;:10;1093:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1169:1;1162:8;;;928:250;;;;;:::o;1184:132::-;1242:7;1269:39;1273:1;1276;1269:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1262:46;;1184:132;;;;:::o;1322:345::-;1408:7;1507:1;1503;:5;1510:12;1495:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1534:9;1550:1;1546;:5;;;;;;1534:17;;1658:1;1651:8;;;1322:345;;;;;:::o

Swarm Source

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