Contract 0xd6cdd609ae911fd35f5e13e76242ea33902500d0

Contract Overview

ScareCRO: SCRO Token
Balance:
0 CRO

CRO Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x6dfc0ef486b351ab1853df0ec2bb51e12f5b2bd229397efd048e4438e61c0a39Approve56797122022-11-22 13:51:479 days 17 hrs ago0x500fc4050beaae5258c91c233e5ff75c39b5c13e IN  ScareCRO: SCRO Token0 CRO0.216359459393 4,872.30237791
0x871a3e7ff766dfc1e9462a66bec3ab2c11d3f309f1b73b70fa23e1e44ffe6127Approve55393732022-11-13 8:19:2018 days 23 hrs ago0x059a051f36c1fbf842030160f653949aa636904e IN  ScareCRO: SCRO Token0 CRO0.222074406 5,001
0x45786195ad68fa4a67581f6fdb6fe9b3138e1175795a23dd013a651f0666abe5Approve54960262022-11-10 11:53:0721 days 19 hrs ago0x4f1f21ab3ed36656d103b2c725feacf35afdfeba IN  ScareCRO: SCRO Token0 CRO0.2166648830130
0x37e9166e6035b1958419e984f3b068fd4a47384c0f63b7cadb52bbc4791861d3Approve54920462022-11-10 5:35:0422 days 1 hr ago0xce877df21b302a5354c63c59682c3af690f78e1c IN  ScareCRO: SCRO Token0 CRO0.216739384394 4,880.858091133
0xc71b9ae21d6a4ae64cc8336bf4601ed1c367d19bcd7099e36f71f6393e0c7c14Approve54902982022-11-10 2:49:2722 days 4 hrs ago0x765412c0b5851bb0bb8ac323efa503c6cb661ffe IN  ScareCRO: SCRO Token0 CRO0.2166763382940
0xe2d624087ab9ac9b35c1ce012ad11248e0396db96c012c27c811d194a05ecebeApprove54902822022-11-10 2:47:5622 days 4 hrs ago0xf8864df574831b11ea24873ce3b2971eca3f0eb8 IN  ScareCRO: SCRO Token0 CRO0.21674297124 4,880.938865024
0xae066c60aec2175f9d46610192ea48527642f48d477aec5ddae7c8c8aceee2eeApprove54902652022-11-10 2:46:2022 days 4 hrs ago0x0d6a385a591c4af09a58057ff49ee63cea2c7f27 IN  ScareCRO: SCRO Token0 CRO0.22203 5,000
0xdf5572f27caae97ec7c3e18a0d05cc46c7432b3f035423daa9ddf64efe0553a7Approve54902392022-11-10 2:43:5322 days 4 hrs ago0xd57124a28cf6006614e9cce44e09830e982655ed IN  ScareCRO: SCRO Token0 CRO0.22203 5,000
0xe54a23b412d7393ea6ad302fb6ff615542285f9ff3d82d6dbb2b5d06428db802Approve54902342022-11-10 2:43:2522 days 4 hrs ago0xf102171df78d8b7e12bddc8a4a17478532d3cf8f IN  ScareCRO: SCRO Token0 CRO0.216743068354 4,880.941051989
0xf40720c820db0c36f8a1a4609001e1c660027f4fef1ea27a7a47b991d98a3ea0Approve54902252022-11-10 2:42:3322 days 4 hrs ago0x725ade2e35864356d6fbd4e61a340e47248b1cd0 IN  ScareCRO: SCRO Token0 CRO0.216743086518 4,880.941461027
0xa6a7e57d1706768ad18050fe82cb94126e722dfd42a3a2e5863c67e69bf6d356Approve54901862022-11-10 2:38:5122 days 4 hrs ago0xfcbe1b4ad50854da3e171a8bb646802f8e05bd15 IN  ScareCRO: SCRO Token0 CRO0.216743167456 4,880.943283711
0x34e5b1c1caa0188c9055a81520a6112be5aeaedc6ed2d03d96866777be7d6c3bApprove54901652022-11-10 2:36:5222 days 4 hrs ago0x4f3a33b1dfde7248f44c9651fe9fda89a4ee0408 IN  ScareCRO: SCRO Token0 CRO0.216743210682 4,880.944257141
0xc155a21183db38b9b1fbe077e5babc809955ff406801a048af3d9e213d493e20Approve54901542022-11-10 2:35:4922 days 4 hrs ago0xb4ff4bb5573c8cf1d29456a55b0b2c5e0cc39bbd IN  ScareCRO: SCRO Token0 CRO0.216743233184 4,880.944763875
0xfacac189e1f070bf133175527a6ed5bd4bc237d4dcfcd31abc704137a96df1efApprove54901382022-11-10 2:34:1922 days 4 hrs ago0xca8d3f8f25a410e0cdfc6b396c1e9d3b36fdf573 IN  ScareCRO: SCRO Token0 CRO0.216743265545 4,880.945492634
0xfdd64babc85f86d3c5a6835cc37d23e6490364726975a26de7fb65e3a77fbb5dApprove54900202022-11-10 2:23:0822 days 5 hrs ago0xf3a32a6bbef7a77e9cbb424f6eb3247ef4e8f864 IN  ScareCRO: SCRO Token0 CRO0.2166769068340
0xd5a5e1335c98a65f56b89f31468b7c01765d38afc743cb1f28ea487c8bcc54f2Approve54900022022-11-10 2:21:2622 days 5 hrs ago0xca8d3f8f25a410e0cdfc6b396c1e9d3b36fdf573 IN  ScareCRO: SCRO Token0 CRO0.216743541644 4,880.951710233
0x0421607459008a973242c0fefe2cb8c0b64a5f3055193aee6f522829779f6ed9Approve54898772022-11-10 2:09:3522 days 5 hrs ago0xf8864df574831b11ea24873ce3b2971eca3f0eb8 IN  ScareCRO: SCRO Token0 CRO0.216743794819 4,880.957411609
0xedc16c87f04ead0cfe60364efd3495637ad464726b1c8a609f89891fc9ee24feApprove54898012022-11-10 2:02:2322 days 5 hrs ago0xf102171df78d8b7e12bddc8a4a17478532d3cf8f IN  ScareCRO: SCRO Token0 CRO0.216743951026 4,880.960929307
0x3c73080af39a5d4c3f94794e5af7521f12b2911ed248f32e9e90bee345c0eeffApprove54897932022-11-10 2:01:3822 days 5 hrs ago0x725ade2e35864356d6fbd4e61a340e47248b1cd0 IN  ScareCRO: SCRO Token0 CRO0.216743967478 4,880.961299801
0xddea74d81f8a4f9f05596fdece85f8f39b19fb5b4892528f048837544c721ad4Approve54895642022-11-10 1:39:5622 days 5 hrs ago0xdead1fce374d50292dfceb2f9a4a7a8f976cda26 IN  ScareCRO: SCRO Token0 CRO0.216744433585 4,880.971796277
0xafaeeb891c2743ac4b2582a50cc63e9f417a4882237f9f2270748b464c1ae745Approve54895332022-11-10 1:37:0022 days 5 hrs ago0xfcbe1b4ad50854da3e171a8bb646802f8e05bd15 IN  ScareCRO: SCRO Token0 CRO0.216744497762 4,880.97324151
0x8fcb1e1d6238de11af10184eca4e68993c1a7d5371cfab883b2b9a877fef6ddbApprove54541702022-11-07 17:33:3424 days 13 hrs ago0x74280a9b4d9567997996d95898246d29a31e2dbf IN  ScareCRO: SCRO Token0 CRO0.222030
0x3e86c881859a8db63c13ed0292a4b5b9d29f5c6c3be1e4a3673eeb58cf215c08Approve54021322022-11-04 7:29:3628 days ago0xf631d9a89f88a665c8cf892baccc9d890d82eb10 IN  ScareCRO: SCRO Token0 CRO0.216919915901 4,884.923566674
0x8c47f872d08be9d4fb4a9ed85b66334351650db477b379fc41b2d269b3d44f66Approve54006822022-11-04 5:12:4228 days 2 hrs ago0x80b99c36072b328add1b3a62d8440256934a8164 IN  ScareCRO: SCRO Token0 CRO0.222030
0x518d9fd515eb04d7151ad6323aacde3f7812f7e35709ecd5ac5bdab92dfc940aApprove52371632022-10-24 11:45:2538 days 19 hrs ago0xdce78af026405f1cd26b38c08b858bfc8b388728 IN  ScareCRO: SCRO Token0 CRO0.3108420
[ Download CSV Export 

OVERVIEW

ScareCRO is a project built on the Cronos blockchain.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xebd30f1f89a2a13d8112bacfbeef4cd71e6a2da2e1027dc4a126eb0974ffd0e758116652022-12-01 6:38:281 day 51 mins ago ScareCRO: SCRO Token 0x19bed7998a565fa148efdfd503e8c752b26b95390.013309412887893833 CRO
0xebd30f1f89a2a13d8112bacfbeef4cd71e6a2da2e1027dc4a126eb0974ffd0e758116652022-12-01 6:38:281 day 51 mins ago Mad Meerkat Finance: Master Meerkat & Router ScareCRO: SCRO Token0.013309412887893833 CRO
0xebd30f1f89a2a13d8112bacfbeef4cd71e6a2da2e1027dc4a126eb0974ffd0e758116652022-12-01 6:38:281 day 51 mins ago ScareCRO: SCRO Token 0x19bed7998a565fa148efdfd503e8c752b26b95390.959658981698070628 CRO
0xebd30f1f89a2a13d8112bacfbeef4cd71e6a2da2e1027dc4a126eb0974ffd0e758116652022-12-01 6:38:281 day 51 mins ago Mad Meerkat Finance: Master Meerkat & Router ScareCRO: SCRO Token0.959658981698070628 CRO
0xc731b32f934d7c8ea22b1959743f798e47342568f9622fe0c5c30468060d2ca658116592022-12-01 6:37:531 day 51 mins ago ScareCRO: SCRO Token 0x19bed7998a565fa148efdfd503e8c752b26b95390.126059615251948207 CRO
0xc731b32f934d7c8ea22b1959743f798e47342568f9622fe0c5c30468060d2ca658116592022-12-01 6:37:531 day 51 mins ago Mad Meerkat Finance: Master Meerkat & Router ScareCRO: SCRO Token0.126059615251948207 CRO
0x5d1b48684dddc487f61ab89a582fea02fcfd1acb9fa1c9db5c74995cfb4074ff58116132022-12-01 6:33:341 day 56 mins ago ScareCRO: SCRO Token 0x19bed7998a565fa148efdfd503e8c752b26b95390.014767450293189215 CRO
0x5d1b48684dddc487f61ab89a582fea02fcfd1acb9fa1c9db5c74995cfb4074ff58116132022-12-01 6:33:341 day 56 mins ago Mad Meerkat Finance: Master Meerkat & Router ScareCRO: SCRO Token0.014767450293189215 CRO
0x5d1b48684dddc487f61ab89a582fea02fcfd1acb9fa1c9db5c74995cfb4074ff58116132022-12-01 6:33:341 day 56 mins ago ScareCRO: SCRO Token 0x19bed7998a565fa148efdfd503e8c752b26b95390.629770834488849687 CRO
0x5d1b48684dddc487f61ab89a582fea02fcfd1acb9fa1c9db5c74995cfb4074ff58116132022-12-01 6:33:341 day 56 mins ago Mad Meerkat Finance: Master Meerkat & Router ScareCRO: SCRO Token0.629770834488849687 CRO
0x21b63e66d13290daaadaabdfb5cc518c00357b07e524ea8e29f8eb30f70aadf958115852022-12-01 6:30:541 day 58 mins ago ScareCRO: SCRO Token 0x19bed7998a565fa148efdfd503e8c752b26b95390.133531788557108278 CRO
0x21b63e66d13290daaadaabdfb5cc518c00357b07e524ea8e29f8eb30f70aadf958115852022-12-01 6:30:541 day 58 mins ago Mad Meerkat Finance: Master Meerkat & Router ScareCRO: SCRO Token0.133531788557108278 CRO
0x493ea601d79328e37bc8b1aa1d72fdf61e0fdc5f89b018d7803f11c5259e6c2a58115422022-12-01 6:26:521 day 1 hr ago ScareCRO: SCRO Token 0x19bed7998a565fa148efdfd503e8c752b26b95390.016901093205479992 CRO
0x493ea601d79328e37bc8b1aa1d72fdf61e0fdc5f89b018d7803f11c5259e6c2a58115422022-12-01 6:26:521 day 1 hr ago Mad Meerkat Finance: Master Meerkat & Router ScareCRO: SCRO Token0.016901093205479992 CRO
0x493ea601d79328e37bc8b1aa1d72fdf61e0fdc5f89b018d7803f11c5259e6c2a58115422022-12-01 6:26:521 day 1 hr ago ScareCRO: SCRO Token 0x19bed7998a565fa148efdfd503e8c752b26b95390.80287897167014605 CRO
0x493ea601d79328e37bc8b1aa1d72fdf61e0fdc5f89b018d7803f11c5259e6c2a58115422022-12-01 6:26:521 day 1 hr ago Mad Meerkat Finance: Master Meerkat & Router ScareCRO: SCRO Token0.80287897167014605 CRO
0xf1c690e7f82659ad8a1e29986b488f263e113e497f8d41bb25df7629fc2519fc58115002022-12-01 6:22:541 day 1 hr ago ScareCRO: SCRO Token 0x19bed7998a565fa148efdfd503e8c752b26b95390.007739541843453291 CRO
0xf1c690e7f82659ad8a1e29986b488f263e113e497f8d41bb25df7629fc2519fc58115002022-12-01 6:22:541 day 1 hr ago Mad Meerkat Finance: Master Meerkat & Router ScareCRO: SCRO Token0.007739541843453291 CRO
0xf9b8c55d0b9ebe111e575953a0e16f306ea48652232938638d5d19adb166553257933232022-11-30 1:40:472 days 5 hrs ago ScareCRO: SCRO Token 0x19bed7998a565fa148efdfd503e8c752b26b95390.028585003249783592 CRO
0xf9b8c55d0b9ebe111e575953a0e16f306ea48652232938638d5d19adb166553257933232022-11-30 1:40:472 days 5 hrs ago Mad Meerkat Finance: Master Meerkat & Router ScareCRO: SCRO Token0.028585003249783592 CRO
0x4c4d30e81f621be08c7bf25caed6ff03d364974e3d59b3dbad1ba31239de812e56639612022-11-21 13:04:0510 days 18 hrs ago ScareCRO: SCRO Token 0x19bed7998a565fa148efdfd503e8c752b26b95391.500851260238286288 CRO
0x4c4d30e81f621be08c7bf25caed6ff03d364974e3d59b3dbad1ba31239de812e56639612022-11-21 13:04:0510 days 18 hrs ago Mad Meerkat Finance: Master Meerkat & Router ScareCRO: SCRO Token1.500851260238286288 CRO
0xbad158d49351163a560b0a5ebe8f2021d00c349aadd13c319693a1787f912ffa56272902022-11-19 3:19:5313 days 4 hrs ago ScareCRO: SCRO Token 0x19bed7998a565fa148efdfd503e8c752b26b95390.105253707494296052 CRO
0xbad158d49351163a560b0a5ebe8f2021d00c349aadd13c319693a1787f912ffa56272902022-11-19 3:19:5313 days 4 hrs ago Mad Meerkat Finance: Master Meerkat & Router ScareCRO: SCRO Token0.105253707494296052 CRO
0xf9bebabe9ebf5e5e0a4778dd6bd6301cf404318103ed5a25dbe47be53a4b5b6555306422022-11-12 18:29:3319 days 13 hrs ago ScareCRO: SCRO Token 0x19bed7998a565fa148efdfd503e8c752b26b95390.150564269367592307 CRO
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ScareCRO

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at cronoscan.com on 2022-05-11
*/

//ScareCRO

//Tired of the same roadmap on every project? Some combination of unimaginative game, 
//maybe a launchpad, throw in a staking platform, which never even get released. We are here to take degens back to their roots. 
//Earn rewards and shill as a community. We will be the catalyst for the Cronos blockchain. A pure memecoin for the masses.

//ScareCRO.online

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.7;

library Address {

    function isContract(address account) internal view returns (bool) {

        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) private pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

interface IUniRouterV1
{
    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 removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniRouterV2 is IUniRouterV1
{
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    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 IERC20 {

    function totalSupply() external view returns (uint256);

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

library SafeERC20 {
    using Address for address;

    function safeTransfer(
        IERC20 token,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(
        IERC20 token,
        address from,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {

        require(
            (value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function safeIncreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        uint256 newAllowance = token.allowance(address(this), spender) + value;
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        unchecked {
            uint256 oldAllowance = token.allowance(address(this), spender);
            require(oldAllowance >= value, "SafeERC20: decreased allowance below zero");
            uint256 newAllowance = oldAllowance - value;
            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
        }
    }

    function _callOptionalReturn(IERC20 token, bytes memory data) private {

        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) {
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

     function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

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

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

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

    uint256 currentIndex;

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

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

    constructor (IUniRouterV2 _router) {
        router = _router;
        _token = msg.sender;
    }

    function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken {
        minPeriod = newMinPeriod;
        minDistribution = newMinDistribution;
    }

    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
    {
        totalDividends = totalDividends.add(msg.value);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(msg.value).div(totalShares));
    }

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

        if(shareholderCount == 0) { return; }

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

        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);
            (bool success, ) = payable(shareholder).call{value: amount, gas: 30000}("");
            success = false;
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }
    
    function claimDividend() external {

        require(shouldDistribute(msg.sender), "Too soon. Need to wait!");
        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();
    }
}

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

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

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

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

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

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

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

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

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

    event OwnershipTransferred(address owner);
}

contract ScareCRO is IERC20, Auth {
    
    using SafeMath for uint256;
    using SafeERC20 for IERC20;

    string constant _name = "ScareCRO";
    string constant _symbol = "SCRO";
    uint8 constant _decimals = 9;

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


    uint256 _totalSupply = 1000000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = 10000000 * (10 ** _decimals);
    uint256 public _walletMax = 20000000 * (10 ** _decimals);

    bool public restrictWhales = true;

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

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

    mapping(address => bool) public isBot;

    uint256 public liquidityFee = 1;
    uint256 public liquidityFeeSell = 1;

    uint256 public marketingFee = 4;
    uint256 public marketingFeeSell = 7;

    uint256 public rewardsFee = 5;
    uint256 public rewardsFeeSell = 7;

    uint256 public teamFee = 0;
    uint256 public teamFeeSell = 0;

    uint256 public totalFee = 10;
    uint256 public totalFeeSell = 15;

    address public autoLiquidityReceiver = address(this);
    address public marketingWallet = 0xBc73Bf0C683633D3736A6053F42970A9C944F35C;
    address public teamWallet = 0xBc73Bf0C683633D3736A6053F42970A9C944F35C;

    IUniRouterV2 public router;
    address public pair;

    uint256 public launchedAt;
    bool public tradingOpen = false;

    DividendDistributor public dividendDistributor;
    uint256 distributorGas = 500000;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    uint256 public swapThreshold = 10 * (10 ** _decimals);

    uint256 public timeToWait = 6;
    event BlacklistedUser(address botAddress, bool indexed value);


    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor () Auth(msg.sender) {

        IUniRouterV2 _router = IUniRouterV2(0x145677FC4d9b8F19B5D56d1820c48e0443049a30);
        router = _router;

        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        dividendDistributor = new DividendDistributor(router);

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


        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[marketingWallet] = true;
        isTxLimitExempt[pair] = true;


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

        autoLiquidityReceiver = address(this);



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

    receive() external payable { }

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

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

    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, type(uint256).max);
    }

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

    function launch() internal {
        launchedAt = block.timestamp;
    }

    function changeTxLimit(uint256 newLimit) external authorized {
        _maxTxAmount = newLimit;
    }

    function changeWalletLimit(uint256 newLimit) external authorized {
        _walletMax  = newLimit;
    }

    function changeNoBigGuys(bool newValue) external authorized {
       restrictWhales = newValue;
    }

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

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

    function changeIsDividendExempt(address holder, bool exempt) external authorized {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;

        if(exempt){
            dividendDistributor.setShare(holder, 0);
        }else{
            dividendDistributor.setShare(holder, _balances[holder]);
        }
    }

    function changeFees(uint256 newLiqFee, uint256 newRewardFee, uint256 newMarketingFee, uint256 newteamFee) external authorized {

        require(newLiqFee <= 10, "LP Tax on buys can not be higher than 10%");
        require(newMarketingFee <= 10, "Marketing Tax on buys can not be higher than 10%");
        require(newteamFee <= 0, "Team Tax on buys can not be higher than 0%");
        require(newRewardFee >= 2, "Rewards Tax on buys can not be lower than 2%");

        liquidityFee = newLiqFee;
        rewardsFee = newRewardFee;
        marketingFee = newMarketingFee;
        teamFee = newteamFee;

        totalFee = liquidityFee.add(marketingFee).add(teamFee).add(rewardsFee);
    }

    function changeFeesSell(uint256 newLiqFeeSell, uint256 newRewardFeeSell, uint256 newMarketingFeeSell, uint256 newteamFeeSell) external authorized {
        require(newLiqFeeSell <= 10, "LP Tax on sells can not be higher than 10%");
        require(newMarketingFeeSell <= 10, "Marketing Tax on sells can not be higher than 10%");
        require(newteamFeeSell <= 0, "Team Tax on sells can not be higher than 0%");
        require(newRewardFeeSell >= 2, "Rewards Tax on sells can not be lower than 2%");

        liquidityFeeSell = newLiqFeeSell;
        rewardsFeeSell = newRewardFeeSell;
        marketingFeeSell = newMarketingFeeSell;
        teamFeeSell = newteamFeeSell;

        totalFeeSell = liquidityFeeSell.add(marketingFeeSell).add(teamFeeSell).add(rewardsFeeSell);
    }

    function changeFeeReceivers(address newLiquidityReceiver, address newMarketingWallet, address newteamWallet) external authorized {
        autoLiquidityReceiver = newLiquidityReceiver;
        marketingWallet = newMarketingWallet;
        teamWallet = newteamWallet;
    }

    function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit, bool swapByLimitOnly) external authorized {
        swapAndLiquifyEnabled  = enableSwapBack;
        swapThreshold = newSwapBackLimit;
        swapAndLiquifyByLimitOnly = swapByLimitOnly;
    }

    function changeDistributionCriteria(uint256 newinPeriod, uint256 newMinDistribution) external authorized {
        dividendDistributor.setDistributionCriteria(newinPeriod, newMinDistribution);
    }

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

    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] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {

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

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

        require(amount <= _maxTxAmount || isTxLimitExempt[recipient], "TX Limit Exceeded");

        if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); }

        if(!launched() && recipient == pair) {
            require(_balances[sender] > 0);

        }

        if ((block.timestamp < launchedAt + timeToWait) && recipient != pair) {
            isBot[recipient] = true;
            emit BlacklistedUser(recipient, true);
        }

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

        if(!isTxLimitExempt[recipient] && restrictWhales)
        {
            require(_balances[recipient].add(amount) <= _walletMax);
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

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

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

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

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

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

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {

        uint256 feeApplicable = pair == recipient ? totalFeeSell : totalFee;
        if(isBot[recipient] == true) {
          feeApplicable = 99;
        }
        else if(isBot[sender] == true) {
          feeApplicable = 99;
        }
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

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

        return amount.sub(feeAmount);
    }

    function tradingStatus(bool newStatus) public onlyOwner {
        tradingOpen = newStatus;
        launch();
    }

    // Blacklist or Unblacklist bots or sniper
    function blacklistSniper(address botAddress, bool isban) external onlyOwner {
        isBot[botAddress] = isban;
    }

    function swapBack() internal lockTheSwap {

        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

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

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

        uint256 amountCRO = address(this).balance;

        uint256 totalCROFee = totalFee.sub(liquidityFee.div(2));

        uint256 amountCROLiquidity = amountCRO.mul(liquidityFee).div(totalCROFee).div(2);
        uint256 amountCROReflection = amountCRO.mul(rewardsFee).div(totalCROFee);
        uint256 amountCROMarketing = amountCRO.sub(amountCROLiquidity).sub(amountCROReflection);

        try dividendDistributor.deposit{value: amountCROReflection}() {} catch {}

        uint256 teamShare = amountCRO.mul(teamFee).div(totalCROFee);
        uint256 marketingShare = amountCROMarketing.sub(teamShare);


        (bool tmpSuccess,) = payable(marketingWallet).call{value: marketingShare, gas: 30000}("");
        (bool tmpSuccess1,) = payable(teamWallet).call{value: teamShare, gas: 30000}("");

        // only to supress warning msg
        tmpSuccess = false;
        tmpSuccess1 = false;

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

    function RescueTokens(uint256 amount, address payable receiver) external onlyOwner {
        uint256 contractBalance = address(this).balance;
        require(contractBalance > amount,"Insufficient CRO");
        receiver.transfer(amount);
    }

    event AutoLiquify(uint256 amountCRO, uint256 amountBOG);

}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountCRO","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"botAddress","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"BlacklistedUser","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address payable","name":"receiver","type":"address"}],"name":"RescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"botAddress","type":"address"},{"internalType":"bool","name":"isban","type":"bool"}],"name":"blacklistSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"changeDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"changeDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityReceiver","type":"address"},{"internalType":"address","name":"newMarketingWallet","type":"address"},{"internalType":"address","name":"newteamWallet","type":"address"}],"name":"changeFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newteamFee","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFeeSell","type":"uint256"},{"internalType":"uint256","name":"newRewardFeeSell","type":"uint256"},{"internalType":"uint256","name":"newMarketingFeeSell","type":"uint256"},{"internalType":"uint256","name":"newteamFeeSell","type":"uint256"}],"name":"changeFeesSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsNoTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"changeNoBigGuys","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"},{"internalType":"bool","name":"swapByLimitOnly","type":"bool"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dividendDistributor","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":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","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":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniRouterV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":"teamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timeToWait","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031990811661dead17909155600380549091169055620000326009600a620005b6565b6200004290633b9aca0062000677565b600455620000536009600a620005b6565b62000062906298968062000677565b600555620000736009600a620005b6565b62000083906301312d0062000677565b6006556007805460ff1990811660019081178355600e819055600f90815560046010556011839055600560125560139290925560006014819055601555600a6016819055601792909255601880546001600160a01b0319908116301790915560198054821673bc73bf0c683633d3736a6053f42970a9c944f35c908117909155601a8054909216179055601e805490911690556207a120601f556020805462ffff0019166101001790556200013b90600990620005b6565b6200014890600a62000677565b60215560066022553480156200015d57600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff1916909217909155601b805473145677fc4d9b8f19b5d56d1820c48e0443049a30931683179055825163c45a015560e01b815292519192839263c45a015592600480840193919291829003018186803b158015620001e357600080fd5b505afa158015620001f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021e91906200053b565b6001600160a01b031663c9c65396601b60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200027b57600080fd5b505afa15801562000290573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b691906200053b565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b158015620002fe57600080fd5b505af115801562000313573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033991906200053b565b601c80546001600160a01b0319166001600160a01b03928316179055306000908152600960209081526040808320601b80548616855292529182902060001990555490519116906200038b906200052d565b6001600160a01b039091168152602001604051809103906000f080158015620003b8573d6000803e3d6000fd5b50601e8054610100600160a81b0319166101006001600160a01b0393841602179055336000818152600a60209081526040808320805460ff19908116600190811790925530808652838620805483168417905560198054891687528487208054841685179055601a80548a1688528588208054851686179055888852600b875285882080548516861790559054891687528487208054841685179055601c80548a16885285882080548516861790555489168752600c865284872080548416851790558787528487208054841685179055818752848720805484168517905560025489168752848720805484168517905560035489168752848720805484168517905554909716855282852080549091169091179055601880546001600160a01b031916909517909455600454838352600882528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620006af565b610b878062002edf83390190565b6000602082840312156200054e57600080fd5b81516001600160a01b03811681146200056657600080fd5b9392505050565b600181815b80851115620005ae57816000190482111562000592576200059262000699565b80851615620005a057918102915b93841c939080029062000572565b509250929050565b60006200056660ff841683600082620005d25750600162000671565b81620005e15750600062000671565b8160018114620005fa5760028114620006055762000625565b600191505062000671565b60ff84111562000619576200061962000699565b50506001821b62000671565b5060208310610133831016604e8410600b84101617156200064a575081810a62000671565b6200065683836200056d565b80600019048211156200066d576200066d62000699565b0290505b92915050565b600081600019048311821515161562000694576200069462000699565b500290565b634e487b7160e01b600052601160045260246000fd5b61282080620006bf6000396000f3fe6080604052600436106103a65760003560e01c806375f0a874116101e7578063bad3ea6a1161010d578063dd62ed3e116100a0578063f887ea401161006f578063f887ea4014610b0d578063fabe628314610b2d578063fe9fbb8014610b4d578063ffb54a9914610b6d57600080fd5b8063dd62ed3e14610a67578063e2dd8ca014610aad578063f0b37c0414610acd578063f2fde38b14610aed57600080fd5b8063d829d3f8116100dc578063d829d3f8146109f1578063d920334e14610a11578063da00097d14610a31578063dbe1c4d514610a5157600080fd5b8063bad3ea6a14610980578063bf56b371146109a5578063ca33e64c146109bb578063d7c94efd146109db57600080fd5b80638b42507f11610185578063a9059cbb11610154578063a9059cbb14610900578063a9f7864b14610920578063b0a616a914610940578063b6a5d7de1461096057600080fd5b80638b42507f1461086d57806395d89b411461089d57806398118cb4146108ca578063a8aa1b31146108e057600080fd5b80637db1342c116101c15780637db1342c14610803578063807c2d9c1461082357806384f6820a14610839578063893d20e81461084f57600080fd5b806375f0a874146107ad578063773fcb5c146107cd5780637d1db4a5146107ed57600080fd5b8063315dca29116102cc578063479f66d81161026a57806359927044116102395780635992704414610709578063650c4226146107415780636b67c4df1461076157806370a082311461077757600080fd5b8063479f66d8146106945780634a74bb02146106b457806353148416146106d3578063571ac8b0146106e957600080fd5b80633f4218e0116102a65780633f4218e0146105fa5780634102eedc1461062a5780634355855a1461064a57806344de2e4c1461067a57600080fd5b8063315dca291461058a57806334c70889146105aa5780633bbac579146105ca57600080fd5b806313374e7a116103445780632b112e49116103135780632b112e49146105145780632bb14e1d146105295780632f54bf6e1461053f578063313ce5671461056e57600080fd5b806313374e7a146104b357806318160ddd146104c95780631df4ccfc146104de57806323b872dd146104f457600080fd5b8063095ea7b311610380578063095ea7b31461042b57806309ad803d1461045b5780630d2959801461047d5780631107b3a51461049d57600080fd5b806303898c17146103b25780630445b667146103db57806306fdde03146103f157600080fd5b366103ad57005b600080fd5b3480156103be57600080fd5b506103c860135481565b6040519081526020015b60405180910390f35b3480156103e757600080fd5b506103c860215481565b3480156103fd57600080fd5b50604080518082019091526008815267536361726543524f60c01b60208201525b6040516103d2919061262e565b34801561043757600080fd5b5061044b6104463660046124eb565b610b87565b60405190151581526020016103d2565b34801561046757600080fd5b5061047b6104763660046125fc565b610bf3565b005b34801561048957600080fd5b5061047b610498366004612517565b610dec565b3480156104a957600080fd5b506103c8600f5481565b3480156104bf57600080fd5b506103c860115481565b3480156104d557600080fd5b506004546103c8565b3480156104ea57600080fd5b506103c860165481565b34801561050057600080fd5b5061044b61050f366004612475565b610e2e565b34801561052057600080fd5b506103c8610ef0565b34801561053557600080fd5b506103c860125481565b34801561054b57600080fd5b5061044b61055a3660046123b7565b6000546001600160a01b0391821691161490565b34801561057a57600080fd5b50604051600981526020016103d2565b34801561059657600080fd5b5061047b6105a536600461242a565b610f42565b3480156105b657600080fd5b5061047b6105c5366004612532565b610fa6565b3480156105d657600080fd5b5061044b6105e53660046123b7565b600d6020526000908152604090205460ff1681565b34801561060657600080fd5b5061044b6106153660046123b7565b600a6020526000908152604090205460ff1681565b34801561063657600080fd5b5061047b6106453660046124b6565b611001565b34801561065657600080fd5b5061044b6106653660046123b7565b600c6020526000908152604090205460ff1681565b34801561068657600080fd5b5060075461044b9060ff1681565b3480156106a057600080fd5b5061047b6106af36600461256e565b611051565b3480156106c057600080fd5b5060205461044b90610100900460ff1681565b3480156106df57600080fd5b506103c860175481565b3480156106f557600080fd5b5061044b6107043660046123b7565b61108a565b34801561071557600080fd5b50601a54610729906001600160a01b031681565b6040516001600160a01b0390911681526020016103d2565b34801561074d57600080fd5b5061047b61075c3660046125fc565b61109e565b34801561076d57600080fd5b506103c860105481565b34801561078357600080fd5b506103c86107923660046123b7565b6001600160a01b031660009081526008602052604090205490565b3480156107b957600080fd5b50601954610729906001600160a01b031681565b3480156107d957600080fd5b5061047b6107e83660046124b6565b611284565b3480156107f957600080fd5b506103c860055481565b34801561080f57600080fd5b5061047b61081e36600461256e565b6113c5565b34801561082f57600080fd5b506103c860065481565b34801561084557600080fd5b506103c860155481565b34801561085b57600080fd5b506000546001600160a01b0316610729565b34801561087957600080fd5b5061044b6108883660046123b7565b600b6020526000908152604090205460ff1681565b3480156108a957600080fd5b506040805180820190915260048152635343524f60e01b602082015261041e565b3480156108d657600080fd5b506103c8600e5481565b3480156108ec57600080fd5b50601c54610729906001600160a01b031681565b34801561090c57600080fd5b5061044b61091b3660046124eb565b6113ef565b34801561092c57600080fd5b5061047b61093b3660046125ac565b6113fc565b34801561094c57600080fd5b5061047b61095b366004612587565b61145d565b34801561096c57600080fd5b5061047b61097b3660046123b7565b611506565b34801561098c57600080fd5b50601e546107299061010090046001600160a01b031681565b3480156109b157600080fd5b506103c8601d5481565b3480156109c757600080fd5b50601854610729906001600160a01b031681565b3480156109e757600080fd5b506103c860145481565b3480156109fd57600080fd5b5061047b610a0c366004612517565b611557565b348015610a1d57600080fd5b5061047b610a2c36600461256e565b61158f565b348015610a3d57600080fd5b5060205461044b9062010000900460ff1681565b348015610a5d57600080fd5b506103c860225481565b348015610a7357600080fd5b506103c8610a823660046123f1565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610ab957600080fd5b5061047b610ac83660046124b6565b6115b9565b348015610ad957600080fd5b5061047b610ae83660046123b7565b61160e565b348015610af957600080fd5b5061047b610b083660046123b7565b611659565b348015610b1957600080fd5b50601b54610729906001600160a01b031681565b348015610b3957600080fd5b5061047b610b483660046124b6565b6116ef565b348015610b5957600080fd5b5061044b610b683660046123b7565b61173f565b348015610b7957600080fd5b50601e5461044b9060ff1681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610be29086815260200190565b60405180910390a350600192915050565b610bfc3361173f565b610c215760405162461bcd60e51b8152600401610c18906126a3565b60405180910390fd5b600a841115610c855760405162461bcd60e51b815260206004820152602a60248201527f4c5020546178206f6e2073656c6c732063616e206e6f7420626520686967686560448201526972207468616e2031302560b01b6064820152608401610c18565b600a821115610cf05760405162461bcd60e51b815260206004820152603160248201527f4d61726b6574696e6720546178206f6e2073656c6c732063616e206e6f7420626044820152706520686967686572207468616e2031302560781b6064820152608401610c18565b8015610d525760405162461bcd60e51b815260206004820152602b60248201527f5465616d20546178206f6e2073656c6c732063616e206e6f742062652068696760448201526a686572207468616e20302560a81b6064820152608401610c18565b6002831015610db95760405162461bcd60e51b815260206004820152602d60248201527f5265776172647320546178206f6e2073656c6c732063616e206e6f742062652060448201526c6c6f776572207468616e20322560981b6064820152608401610c18565b600f849055601383905560118290556015819055610de383610ddd8381888761175d565b9061175d565b60175550505050565b6000546001600160a01b03163314610e165760405162461bcd60e51b8152600401610c1890612683565b601e805460ff191682151517905542601d5550565b50565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610edb576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610eb6918490611769565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610ee6848484611795565b90505b9392505050565b6003546001600160a01b0316600090815260086020526040812054610f3d906002546001600160a01b0316600090815260086020526040902054610f379060045490611d18565b90611d18565b905090565b610f4b3361173f565b610f675760405162461bcd60e51b8152600401610c18906126a3565b601880546001600160a01b039485166001600160a01b0319918216179091556019805493851693821693909317909255601a8054919093169116179055565b610faf3361173f565b610fcb5760405162461bcd60e51b8152600401610c18906126a3565b60208054602193909355901515620100000262ff000019931515610100029390931662ffff001990921691909117919091179055565b61100a3361173f565b6110265760405162461bcd60e51b8152600401610c18906126a3565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b61105a3361173f565b6110765760405162461bcd60e51b8152600401610c18906126a3565b620b71b0811061108557600080fd5b601f55565b600061109882600019610b87565b92915050565b6110a73361173f565b6110c35760405162461bcd60e51b8152600401610c18906126a3565b600a8411156111265760405162461bcd60e51b815260206004820152602960248201527f4c5020546178206f6e20627579732063616e206e6f7420626520686967686572604482015268207468616e2031302560b81b6064820152608401610c18565b600a8211156111905760405162461bcd60e51b815260206004820152603060248201527f4d61726b6574696e6720546178206f6e20627579732063616e206e6f7420626560448201526f20686967686572207468616e2031302560801b6064820152608401610c18565b80156111f15760405162461bcd60e51b815260206004820152602a60248201527f5465616d20546178206f6e20627579732063616e206e6f7420626520686967686044820152696572207468616e20302560b01b6064820152608401610c18565b60028310156112575760405162461bcd60e51b815260206004820152602c60248201527f5265776172647320546178206f6e20627579732063616e206e6f74206265206c60448201526b6f776572207468616e20322560a01b6064820152608401610c18565b600e84905560128390556010829055601481905561127b83610ddd8381888761175d565b60165550505050565b61128d3361173f565b6112a95760405162461bcd60e51b8152600401610c18906126a3565b6001600160a01b03821630148015906112d05750601c546001600160a01b03838116911614155b6112d957600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff1916821580159190911790915561137757601e54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152610100909204909116906314b6ca96906044015b600060405180830381600087803b15801561135b57600080fd5b505af115801561136f573d6000803e3d6000fd5b505050505050565b601e546001600160a01b0383811660008181526008602052604090819020549051630a5b654b60e11b81526004810192909252602482015261010090920416906314b6ca9690604401611341565b6113ce3361173f565b6113ea5760405162461bcd60e51b8152600401610c18906126a3565b600655565b6000610ee9338484611795565b6114053361173f565b6114215760405162461bcd60e51b8152600401610c18906126a3565b601e546040516316a4744b60e11b815260048101849052602481018390526101009091046001600160a01b031690632d48e89690604401611341565b6000546001600160a01b031633146114875760405162461bcd60e51b8152600401610c1890612683565b478281116114ca5760405162461bcd60e51b815260206004820152601060248201526f496e73756666696369656e742043524f60801b6044820152606401610c18565b6040516001600160a01b0383169084156108fc029085906000818181858888f19350505050158015611500573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146115305760405162461bcd60e51b8152600401610c1890612683565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6115603361173f565b61157c5760405162461bcd60e51b8152600401610c18906126a3565b6007805460ff1916911515919091179055565b6115983361173f565b6115b45760405162461bcd60e51b8152600401610c18906126a3565b600555565b6000546001600160a01b031633146115e35760405162461bcd60e51b8152600401610c1890612683565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146116385760405162461bcd60e51b8152600401610c1890612683565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146116835760405162461bcd60e51b8152600401610c1890612683565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6116f83361173f565b6117145760405162461bcd60e51b8152600401610c18906126a3565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6000610ee98284612739565b6000818484111561178d5760405162461bcd60e51b8152600401610c18919061262e565b505050900390565b60205460009060ff16156117b5576117ae848484611d24565b9050610ee9565b6001600160a01b03841660009081526001602052604090205460ff161580156117f757506001600160a01b03831660009081526001602052604090205460ff16155b1561184557601e5460ff166118455760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610c18565b6005548211158061186e57506001600160a01b0383166000908152600b602052604090205460ff165b6118ae5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610c18565b601c546001600160a01b031633148015906118cc575060205460ff16155b80156118df5750602054610100900460ff165b80156118fc57506021543060009081526008602052604090205410155b1561190957611909611e0a565b601d541580156119265750601c546001600160a01b038481169116145b1561194d576001600160a01b03841660009081526008602052604090205461194d57600080fd5b602254601d5461195d9190612739565b421080156119795750601c546001600160a01b03848116911614155b156119db576001600160a01b0383166000818152600d6020908152604091829020805460ff19166001908117909155915192835290917f3159dadbd8e2d720a851b412e3358e7e44bb11734c9bfd5715340e21798e8b25910160405180910390a25b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611a2d918490611769565b6001600160a01b038086166000908152600860209081526040808320949094559186168152600b909152205460ff16158015611a6b575060075460ff165b15611aa1576006546001600160a01b038416600090815260086020526040902054611a96908461175d565b1115611aa157600080fd5b6001600160a01b0384166000908152600a602052604081205460ff16158015611ae357506001600160a01b0384166000908152600a602052604090205460ff16155b611aed5782611af8565b611af885858561226e565b6001600160a01b038516600090815260086020526040902054909150611b1e908261175d565b6001600160a01b038086166000908152600860209081526040808320949094559188168152600c909152205460ff16611bc757601e546001600160a01b0386811660008181526008602052604090819020549051630a5b654b60e11b81526004810192909252602482015261010090920416906314b6ca9690604401600060405180830381600087803b158015611bb457600080fd5b505af1925050508015611bc5575060015b505b6001600160a01b0384166000908152600c602052604090205460ff16611c5d57601e546001600160a01b0385811660008181526008602052604090819020549051630a5b654b60e11b81526004810192909252602482015261010090920416906314b6ca9690604401600060405180830381600087803b158015611c4a57600080fd5b505af1925050508015611c5b575060015b505b601e54601f546040516001624d3b8760e01b0319815260048101919091526101009091046001600160a01b03169063ffb2c47990602401600060405180830381600087803b158015611cae57600080fd5b505af1925050508015611cbf575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d0591815260200190565b60405180910390a3506001949350505050565b6000610ee98284612792565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611d75918490611769565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611da4908361175d565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611df89086815260200190565b60405180910390a35060019392505050565b6020805460ff1916600117815530600090815260089091526040812054601654600e54919291611e4b91600291611e4591908290879061238a565b90612396565b90506000611e598383611d18565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611e9357611e936127bf565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611ee757600080fd5b505afa158015611efb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1f91906123d4565b81600181518110611f3257611f326127bf565b6001600160a01b039283166020918202929092010152601b5460405163791ac94760e01b815291169063791ac94790611f789085906000908690309042906004016126c8565b600060405180830381600087803b158015611f9257600080fd5b505af1158015611fa6573d6000803e3d6000fd5b5050600e5447925060009150611fca90611fc1906002612396565b60165490611d18565b90506000611fec6002611e4584611e45600e548861238a90919063ffffffff16565b9050600061200983611e456012548761238a90919063ffffffff16565b9050600061201b82610f378786611d18565b9050601e60019054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561206d57600080fd5b505af19350505050801561207f575060015b50600061209b85611e456014548961238a90919063ffffffff16565b905060006120a98383611d18565b6019546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114612100576040519150601f19603f3d011682016040523d82523d6000602084013e612105565b606091505b5050601a546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d806000811461215e576040519150601f19603f3d011682016040523d82523d6000602084013e612163565b606091505b5060009350839250508c15905061225557601b5460185460405163f305d71960e01b8152306004820152602481018f905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990899060c4016060604051808303818588803b1580156121df57600080fd5b505af11580156121f3573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061221891906125ce565b505060408051898152602081018f90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506020805460ff191690555050505050505050505050565b601c5460009081906001600160a01b0385811691161461229057601654612294565b6017545b6001600160a01b0385166000908152600d602052604090205490915060ff161515600114156122c5575060636122ef565b6001600160a01b0385166000908152600d602052604090205460ff161515600114156122ef575060635b60006123006064611e45868561238a565b3060009081526008602052604090205490915061231d908261175d565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061236e9085815260200190565b60405180910390a36123808482611d18565b9695505050505050565b6000610ee98284612773565b6000610ee98284612751565b803580151581146123b257600080fd5b919050565b6000602082840312156123c957600080fd5b8135610ee9816127d5565b6000602082840312156123e657600080fd5b8151610ee9816127d5565b6000806040838503121561240457600080fd5b823561240f816127d5565b9150602083013561241f816127d5565b809150509250929050565b60008060006060848603121561243f57600080fd5b833561244a816127d5565b9250602084013561245a816127d5565b9150604084013561246a816127d5565b809150509250925092565b60008060006060848603121561248a57600080fd5b8335612495816127d5565b925060208401356124a5816127d5565b929592945050506040919091013590565b600080604083850312156124c957600080fd5b82356124d4816127d5565b91506124e2602084016123a2565b90509250929050565b600080604083850312156124fe57600080fd5b8235612509816127d5565b946020939093013593505050565b60006020828403121561252957600080fd5b610ee9826123a2565b60008060006060848603121561254757600080fd5b612550846123a2565b925060208401359150612565604085016123a2565b90509250925092565b60006020828403121561258057600080fd5b5035919050565b6000806040838503121561259a57600080fd5b82359150602083013561241f816127d5565b600080604083850312156125bf57600080fd5b50508035926020909101359150565b6000806000606084860312156125e357600080fd5b8351925060208401519150604084015190509250925092565b6000806000806080858703121561261257600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b8181101561265b5785810183015185820160400152820161263f565b8181111561266d576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127185784516001600160a01b0316835293830193918301916001016126f3565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561274c5761274c6127a9565b500190565b60008261276e57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561278d5761278d6127a9565b500290565b6000828210156127a4576127a46127a9565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610e2b57600080fdfea26469706673582212203af81004dcf6234eb71dd4560269e3f3f16ce36a61a804a39d8a6aa243dfad4d64736f6c6343000807003360806040526ec097ce7bc90715b34b9f1000000000600a55610e10600b556001600c5534801561002e57600080fd5b50604051610b87380380610b8783398101604081905261004d9161007b565b600180546001600160a01b039092166001600160a01b031992831617905560008054909116331790556100ab565b60006020828403121561008d57600080fd5b81516001600160a01b03811681146100a457600080fd5b9392505050565b610acd806100ba6000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610224578063f0fc6bca1461023a578063ffb2c4791461024f578063ffd49c841461026f57600080fd5b8063ce7c2ac2146101af578063d0e30db014610206578063e2d2e2191461020e57600080fd5b80632d48e896116100bb5780632d48e8961461014d5780633a98ef391461016d5780634fab0ae814610183578063997664d71461019957600080fd5b806311ce023d146100e257806314b6ca961461010b57806328fd31981461012d575b600080fd5b3480156100ee57600080fd5b506100f8600a5481565b6040519081526020015b60405180910390f35b34801561011757600080fd5b5061012b610126366004610965565b610285565b005b34801561013957600080fd5b506100f861014836600461094a565b6103fd565b34801561015957600080fd5b5061012b6101683660046109a8565b610486565b34801561017957600080fd5b506100f860065481565b34801561018f57600080fd5b506100f8600c5481565b3480156101a557600080fd5b506100f860075481565b3480156101bb57600080fd5b506101eb6101ca36600461094a565b60056020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610102565b61012b6104a8565b34801561021a57600080fd5b506100f860095481565b34801561023057600080fd5b506100f860085481565b34801561024657600080fd5b5061012b6104fb565b34801561025b57600080fd5b5061012b61026a36600461098f565b61055f565b34801561027b57600080fd5b506100f8600b5481565b6000546001600160a01b0316331461029c57600080fd5b6001600160a01b038216600090815260056020526040902054156102c3576102c38261065f565b6000811180156102e957506001600160a01b038216600090815260056020526040902054155b1561034f57600280546001600160a01b0384166000818152600360205260408120839055600183018455929092527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319169091179055610382565b8015801561037457506001600160a01b03821660009081526005602052604090205415155b15610382576103828261077a565b6001600160a01b0382166000908152600560205260409020546006546103b39183916103ad9161088f565b906108a2565b6006556001600160a01b03821660009081526005602052604090208190556103da816108ae565b6001600160a01b0390921660009081526005602052604090206001019190915550565b6001600160a01b03811660009081526005602052604081205461042257506000919050565b6001600160a01b038216600090815260056020526040812054610444906108ae565b6001600160a01b038416600090815260056020526040902060010154909150808211610474575060009392505050565b61047e828261088f565b949350505050565b6000546001600160a01b0316331461049d57600080fd5b600b91909155600c55565b6000546001600160a01b031633146104bf57600080fd5b6007546104cc90346108a2565b600755600654600a546104f6916104ed916104e790346108d1565b906108dd565b600954906108a2565b600955565b610504336108e9565b6105545760405162461bcd60e51b815260206004820152601760248201527f546f6f20736f6f6e2e204e65656420746f207761697421000000000000000000604482015260640160405180910390fd5b61055d3361065f565b565b6000546001600160a01b0316331461057657600080fd5b60025480610582575050565b60008060005a90505b848210801561059957508383105b156106585783600d54106105ad576000600d555b6105df6002600d54815481106105c5576105c5610a81565b6000918252602090912001546001600160a01b03166108e9565b15610616576106166002600d54815481106105fc576105fc610a81565b6000918252602090912001546001600160a01b031661065f565b61062b6106245a839061088f565b83906108a2565b91505a600d8054919250600061064083610a3a565b9190505550828061065090610a3a565b93505061058b565b5050505050565b6001600160a01b03811660009081526005602052604090205461067f5750565b600061068a826103fd565b905080156107765760085461069f90826108a2565b6008556040516000906001600160a01b0384169061753090849084818181858888f193505050503d80600081146106f2576040519150601f19603f3d011682016040523d82523d6000602084013e6106f7565b606091505b505050506001600160a01b0382166000908152600460209081526040808320429055600590915281206002015461072e90836108a2565b6001600160a01b0384166000908152600560205260409020600281019190915554610758906108ae565b6001600160a01b038416600090815260056020526040902060010155505b5050565b6002805461078a90600190610a23565b8154811061079a5761079a610a81565b60009182526020808320909101546001600160a01b03848116845260039092526040909220546002805492909316929181106107d8576107d8610a81565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591831681526003918290526040812054600280549193929161082490600190610a23565b8154811061083457610834610a81565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600280548061086a5761086a610a6b565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600061089b8284610a23565b9392505050565b600061089b82846109ca565b60006108cb600a546104e7600954856108d190919063ffffffff16565b92915050565b600061089b8284610a04565b600061089b82846109e2565b600b546001600160a01b0382166000908152600460205260408120549091429161091391906109ca565b1080156108cb5750600c54610927836103fd565b1192915050565b80356001600160a01b038116811461094557600080fd5b919050565b60006020828403121561095c57600080fd5b61089b8261092e565b6000806040838503121561097857600080fd5b6109818361092e565b946020939093013593505050565b6000602082840312156109a157600080fd5b5035919050565b600080604083850312156109bb57600080fd5b50508035926020909101359150565b600082198211156109dd576109dd610a55565b500190565b6000826109ff57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610a1e57610a1e610a55565b500290565b600082821015610a3557610a35610a55565b500390565b6000600019821415610a4e57610a4e610a55565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea264697066735822122032b481cc8abec2623bd3a9914487a775c1e16a29e661b20a86eef5d46c619ed564736f6c63430008070033

Deployed ByteCode Sourcemap

20735:13900:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21856:33;;;;;;;;;;;;;;;;;;;13184:25:1;;;13172:2;13157:18;21856:33:0;;;;;;;;22621:53;;;;;;;;;;;;;;;;24086:71;;;;;;;;;;-1:-1:-1;24149:5:0;;;;;;;;;;;;-1:-1:-1;;;24149:5:0;;;;24086:71;;;;;;;:::i;24897:216::-;;;;;;;;;;-1:-1:-1;24897:216:0;;;;;:::i;:::-;;:::i;:::-;;;6925:14:1;;6918:22;6900:41;;6888:2;6873:18;24897:216:0;6760:187:1;27120:793:0;;;;;;;;;;-1:-1:-1;27120:793:0;;;;;:::i;:::-;;:::i;:::-;;32122:117;;;;;;;;;;-1:-1:-1;32122:117:0;;;;;:::i;:::-;;:::i;21694:35::-;;;;;;;;;;;;;;;;21776;;;;;;;;;;;;;;;;24323:88;;;;;;;;;;-1:-1:-1;24396:12:0;;24323:88;;21970:28;;;;;;;;;;;;;;;;29008:370;;;;;;;;;;-1:-1:-1;29008:370:0;;;;;:::i;:::-;;:::i;24495:142::-;;;;;;;;;;;;;:::i;21820:29::-;;;;;;;;;;;;;;;;20279:103;;;;;;;;;;-1:-1:-1;20279:103:0;;;;;:::i;:::-;20334:4;20369:5;-1:-1:-1;;;;;20358:16:0;;;20369:5;;20358:16;;20279:103;24245:72;;;;;;;;;;-1:-1:-1;24245:72:0;;20957:1;14600:36:1;;14588:2;14573:18;24245:72:0;14458:184:1;27921:276:0;;;;;;;;;;-1:-1:-1;27921:276:0;;;;;:::i;:::-;;:::i;28205:::-;;;;;;;;;;-1:-1:-1;28205:276:0;;;;;:::i;:::-;;:::i;21610:37::-;;;;;;;;;;-1:-1:-1;21610:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21446:44;;;;;;;;;;-1:-1:-1;21446:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;25767:119;;;;;;;;;;-1:-1:-1;25767:119:0;;;;;:::i;:::-;;:::i;21552:49::-;;;;;;;;;;-1:-1:-1;21552:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21289:33;;;;;;;;;;-1:-1:-1;21289:33:0;;;;;;;;28697:139;;;;;;;;;;-1:-1:-1;28697:139:0;;;;;:::i;:::-;;:::i;22520:40::-;;;;;;;;;;-1:-1:-1;22520:40:0;;;;;;;;;;;22005:32;;;;;;;;;;;;;;;;25121:122;;;;;;;;;;-1:-1:-1;25121:122:0;;;;;:::i;:::-;;:::i;22187:70::-;;;;;;;;;;-1:-1:-1;22187:70:0;;;;-1:-1:-1;;;;;22187:70:0;;;;;;-1:-1:-1;;;;;5322:32:1;;;5304:51;;5292:2;5277:18;22187:70:0;5158:203:1;26409:703:0;;;;;;;;;;-1:-1:-1;26409:703:0;;;;;:::i;:::-;;:::i;21738:31::-;;;;;;;;;;;;;;;;24645:105;;;;;;;;;;-1:-1:-1;24645:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;24729:18:0;24711:7;24729:18;;;:9;:18;;;;;;;24645:105;22105:75;;;;;;;;;;-1:-1:-1;22105:75:0;;;;-1:-1:-1;;;;;22105:75:0;;;26033:368;;;;;;;;;;-1:-1:-1;26033:368:0;;;;;:::i;:::-;;:::i;21159:58::-;;;;;;;;;;;;;;;;25542:106;;;;;;;;;;-1:-1:-1;25542:106:0;;;;;:::i;:::-;;:::i;21224:56::-;;;;;;;;;;;;;;;;21931:30;;;;;;;;;;;;;;;;24417:70;;;;;;;;;;-1:-1:-1;24461:7:0;24479:5;-1:-1:-1;;;;;24479:5:0;24417:70;;21497:48;;;;;;;;;;-1:-1:-1;21497:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;24163:76;;;;;;;;;;-1:-1:-1;24229:7:0;;;;;;;;;;;;-1:-1:-1;;;24229:7:0;;;;24163:76;;21656:31;;;;;;;;;;;;;;;;22299:19;;;;;;;;;;-1:-1:-1;22299:19:0;;;;-1:-1:-1;;;;;22299:19:0;;;28844:156;;;;;;;;;;-1:-1:-1;28844:156:0;;;;;:::i;:::-;;:::i;28489:200::-;;;;;;;;;;-1:-1:-1;28489:200:0;;;;;:::i;:::-;;:::i;34318:248::-;;;;;;;;;;-1:-1:-1;34318:248:0;;;;;:::i;:::-;;:::i;20072:94::-;;;;;;;;;;-1:-1:-1;20072:94:0;;;;;:::i;:::-;;:::i;22399:46::-;;;;;;;;;;-1:-1:-1;22399:46:0;;;;;;;-1:-1:-1;;;;;22399:46:0;;;22327:25;;;;;;;;;;;;;;;;22046:52;;;;;;;;;;-1:-1:-1;22046:52:0;;;;-1:-1:-1;;;;;22046:52:0;;;21898:26;;;;;;;;;;;;;;;;25656:103;;;;;;;;;;-1:-1:-1;25656:103:0;;;;;:::i;:::-;;:::i;25431:::-;;;;;;;;;;-1:-1:-1;25431:103:0;;;;;:::i;:::-;;:::i;22567:45::-;;;;;;;;;;-1:-1:-1;22567:45:0;;;;;;;;;;;22683:29;;;;;;;;;;;;;;;;24756:133;;;;;;;;;;-1:-1:-1;24756:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;24858:19:0;;;24840:7;24858:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;24756:133;32295:120;;;;;;;;;;-1:-1:-1;32295:120:0;;;;;:::i;:::-;;:::i;20174:97::-;;;;;;;;;;-1:-1:-1;20174:97:0;;;;;:::i;:::-;;:::i;20505:173::-;;;;;;;;;;-1:-1:-1;20505:173:0;;;;;:::i;:::-;;:::i;22266:26::-;;;;;;;;;;-1:-1:-1;22266:26:0;;;;-1:-1:-1;;;;;22266:26:0;;;25894:131;;;;;;;;;;-1:-1:-1;25894:131:0;;;;;:::i;:::-;;:::i;20390:107::-;;;;;;;;;;-1:-1:-1;20390:107:0;;;;;:::i;:::-;;:::i;22359:31::-;;;;;;;;;;-1:-1:-1;22359:31:0;;;;;;;;24897:216;25001:10;24972:4;24989:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;24989:32:0;;;;;;;;;;:41;;;25046:37;24972:4;;24989:32;;25046:37;;;;25024:6;13184:25:1;;13172:2;13157:18;;13038:177;25046:37:0;;;;;;;;-1:-1:-1;25101:4:0;24897:216;;;;:::o;27120:793::-;20013:24;20026:10;20013:12;:24::i;:::-;20005:48;;;;-1:-1:-1;;;20005:48:0;;;;;;;:::i;:::-;;;;;;;;;27302:2:::1;27285:13;:19;;27277:74;;;::::0;-1:-1:-1;;;27277:74:0;;9735:2:1;27277:74:0::1;::::0;::::1;9717:21:1::0;9774:2;9754:18;;;9747:30;9813:34;9793:18;;;9786:62;-1:-1:-1;;;9864:18:1;;;9857:40;9914:19;;27277:74:0::1;9533:406:1::0;27277:74:0::1;27393:2;27370:19;:25;;27362:87;;;::::0;-1:-1:-1;;;27362:87:0;;10495:2:1;27362:87:0::1;::::0;::::1;10477:21:1::0;10534:2;10514:18;;;10507:30;10573:34;10553:18;;;10546:62;-1:-1:-1;;;10624:18:1;;;10617:47;10681:19;;27362:87:0::1;10293:413:1::0;27362:87:0::1;27468:19:::0;;27460:75:::1;;;::::0;-1:-1:-1;;;27460:75:0;;12071:2:1;27460:75:0::1;::::0;::::1;12053:21:1::0;12110:2;12090:18;;;12083:30;12149:34;12129:18;;;12122:62;-1:-1:-1;;;12200:18:1;;;12193:41;12251:19;;27460:75:0::1;11869:407:1::0;27460:75:0::1;27574:1;27554:16;:21;;27546:79;;;::::0;-1:-1:-1;;;27546:79:0;;11323:2:1;27546:79:0::1;::::0;::::1;11305:21:1::0;11362:2;11342:18;;;11335:30;11401:34;11381:18;;;11374:62;-1:-1:-1;;;11452:18:1;;;11445:43;11505:19;;27546:79:0::1;11121:409:1::0;27546:79:0::1;27638:16;:32:::0;;;27681:14:::1;:33:::0;;;27725:16:::1;:38:::0;;;27774:11:::1;:28:::0;;;27830:75:::1;27698:16:::0;27830:55:::1;27788:14:::0;27830:55;27657:13;27744:19;27830:20:::1;:38::i;:::-;:42:::0;::::1;:55::i;:75::-;27815:12;:90:::0;-1:-1:-1;;;;27120:793:0:o;32122:117::-;20334:4;20369:5;-1:-1:-1;;;;;20369:5:0;19931:10;20358:16;19915:38;;;;-1:-1:-1;;;19915:38:0;;;;;;;:::i;:::-;32189:11:::1;:23:::0;;-1:-1:-1;;32189:23:0::1;::::0;::::1;;;::::0;;25400:15;25387:10;:28;32122:117;:::o;32223:8::-:1;32122:117:::0;:::o;29008:370::-;-1:-1:-1;;;;;29130:19:0;;29108:4;29130:19;;;:11;:19;;;;;;;;29150:10;29130:31;;;;;;;;-1:-1:-1;;29130:52:0;29127:186;;29232:69;;;;;;;;;;;-1:-1:-1;;;29232:69:0;;;;;;;;-1:-1:-1;;;;;29232:19:0;;-1:-1:-1;29232:19:0;;;:11;:19;;;;;29252:10;29232:31;;;;;;;;;;:69;;29268:6;;29232:35;:69::i;:::-;-1:-1:-1;;;;;29198:19:0;;;;;;:11;:19;;;;;;;;29218:10;29198:31;;;;;;;:103;29127:186;29330:40;29344:6;29352:9;29363:6;29330:13;:40::i;:::-;29323:47;;29008:370;;;;;;:::o;24495:142::-;24623:4;;-1:-1:-1;;;;;24623:4:0;24548:7;24729:18;;;:9;:18;;;;;;24575:54;;24602:4;;-1:-1:-1;;;;;24602:4:0;24711:7;24729:18;;;:9;:18;;;;;;24575:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;24568:61;;24495:142;:::o;27921:276::-;20013:24;20026:10;20013:12;:24::i;:::-;20005:48;;;;-1:-1:-1;;;20005:48:0;;;;;;;:::i;:::-;28061:21:::1;:44:::0;;-1:-1:-1;;;;;28061:44:0;;::::1;-1:-1:-1::0;;;;;;28061:44:0;;::::1;;::::0;;;28116:15:::1;:36:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;28163:10:::1;:26:::0;;;;;::::1;::::0;::::1;;::::0;;27921:276::o;28205:::-;20013:24;20026:10;20013:12;:24::i;:::-;20005:48;;;;-1:-1:-1;;;20005:48:0;;;;;;;:::i;:::-;28337:21:::1;:39:::0;;28387:13:::1;:32:::0;;;;28430:43;::::1;;::::0;::::1;-1:-1:-1::0;;28337:39:0;::::1;;;;28430:43:::0;;;;-1:-1:-1;;28430:43:0;;;;;;;;;;::::1;::::0;;28205:276::o;25767:119::-;20013:24;20026:10;20013:12;:24::i;:::-;20005:48;;;;-1:-1:-1;;;20005:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25850:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;25850:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25767:119::o;28697:139::-;20013:24;20026:10;20013:12;:24::i;:::-;20005:48;;;;-1:-1:-1;;;20005:48:0;;;;;;;:::i;:::-;28790:6:::1;28784:3;:12;28776:21;;;::::0;::::1;;28808:14;:20:::0;28697:139::o;25121:122::-;25176:4;25200:35;25208:7;-1:-1:-1;;25200:7:0;:35::i;:::-;25193:42;25121:122;-1:-1:-1;;25121:122:0:o;26409:703::-;20013:24;20026:10;20013:12;:24::i;:::-;20005:48;;;;-1:-1:-1;;;20005:48:0;;;;;;;:::i;:::-;26569:2:::1;26556:9;:15;;26548:69;;;::::0;-1:-1:-1;;;26548:69:0;;10913:2:1;26548:69:0::1;::::0;::::1;10895:21:1::0;10952:2;10932:18;;;10925:30;10991:34;10971:18;;;10964:62;-1:-1:-1;;;11042:18:1;;;11035:39;11091:19;;26548:69:0::1;10711:405:1::0;26548:69:0::1;26655:2;26636:15;:21;;26628:82;;;::::0;-1:-1:-1;;;26628:82:0;;12483:2:1;26628:82:0::1;::::0;::::1;12465:21:1::0;12522:2;12502:18;;;12495:30;12561:34;12541:18;;;12534:62;-1:-1:-1;;;12612:18:1;;;12605:46;12668:19;;26628:82:0::1;12281:412:1::0;26628:82:0::1;26729:15:::0;;26721:70:::1;;;::::0;-1:-1:-1;;;26721:70:0;;9324:2:1;26721:70:0::1;::::0;::::1;9306:21:1::0;9363:2;9343:18;;;9336:30;9402:34;9382:18;;;9375:62;-1:-1:-1;;;9453:18:1;;;9446:40;9503:19;;26721:70:0::1;9122:406:1::0;26721:70:0::1;26826:1;26810:12;:17;;26802:74;;;::::0;-1:-1:-1;;;26802:74:0;;8911:2:1;26802:74:0::1;::::0;::::1;8893:21:1::0;8950:2;8930:18;;;8923:30;8989:34;8969:18;;;8962:62;-1:-1:-1;;;9040:18:1;;;9033:42;9092:19;;26802:74:0::1;8709:408:1::0;26802:74:0::1;26889:12;:24:::0;;;26924:10:::1;:25:::0;;;26960:12:::1;:30:::0;;;27001:7:::1;:20:::0;;;27045:59:::1;26937:12:::0;27045:43:::1;27011:10:::0;27045:43;26904:9;26975:15;27045:16:::1;:30::i;:59::-;27034:8;:70:::0;-1:-1:-1;;;;26409:703:0:o;26033:368::-;20013:24;20026:10;20013:12;:24::i;:::-;20005:48;;;;-1:-1:-1;;;20005:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26133:23:0;::::1;26151:4;26133:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;26170:4:0::1;::::0;-1:-1:-1;;;;;26160:14:0;;::::1;26170:4:::0;::::1;26160:14;;26133:41;26125:50;;;::::0;::::1;;-1:-1:-1::0;;;;;26186:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;26186:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;26232:162:::1;;26257:19;::::0;:39:::1;::::0;-1:-1:-1;;;26257:39:0;;-1:-1:-1;;;;;5782:32:1;;;26257:39:0::1;::::0;::::1;5764:51:1::0;26294:1:0::1;5831:18:1::0;;;5824:34;26257:19:0::1;::::0;;::::1;::::0;;::::1;::::0;:28:::1;::::0;5737:18:1;;26257:39:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;26033:368:::0;;:::o;26232:162::-:1;26327:19;::::0;-1:-1:-1;;;;;26364:17:0;;::::1;;::::0;;;:9:::1;:17;::::0;;;;;;;26327:55;;-1:-1:-1;;;26327:55:0;;::::1;::::0;::::1;5764:51:1::0;;;;5831:18;;;5824:34;26327:19:0::1;::::0;;::::1;;::::0;:28:::1;::::0;5737:18:1;;26327:55:0::1;5582:282:1::0;25542:106:0;20013:24;20026:10;20013:12;:24::i;:::-;20005:48;;;;-1:-1:-1;;;20005:48:0;;;;;;;:::i;:::-;25618:10:::1;:22:::0;25542:106::o;28844:156::-;28924:4;28948:44;28962:10;28974:9;28985:6;28948:13;:44::i;28489:200::-;20013:24;20026:10;20013:12;:24::i;:::-;20005:48;;;;-1:-1:-1;;;20005:48:0;;;;;;;:::i;:::-;28605:19:::1;::::0;:76:::1;::::0;-1:-1:-1;;;28605:76:0;;::::1;::::0;::::1;14379:25:1::0;;;14420:18;;;14413:34;;;28605:19:0::1;::::0;;::::1;-1:-1:-1::0;;;;;28605:19:0::1;::::0;:43:::1;::::0;14352:18:1;;28605:76:0::1;14205:248:1::0;34318::0;20334:4;20369:5;-1:-1:-1;;;;;20369:5:0;19931:10;20358:16;19915:38;;;;-1:-1:-1;;;19915:38:0;;;;;;;:::i;:::-;34438:21:::1;34478:24:::0;;::::1;34470:52;;;::::0;-1:-1:-1;;;34470:52:0;;8566:2:1;34470:52:0::1;::::0;::::1;8548:21:1::0;8605:2;8585:18;;;8578:30;-1:-1:-1;;;8624:18:1;;;8617:46;8680:18;;34470:52:0::1;8364:340:1::0;34470:52:0::1;34533:25;::::0;-1:-1:-1;;;;;34533:17:0;::::1;::::0;:25;::::1;;;::::0;34551:6;;34533:25:::1;::::0;;;34551:6;34533:17;:25;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;34401:165;34318:248:::0;;:::o;20072:94::-;20334:4;20369:5;-1:-1:-1;;;;;20369:5:0;19931:10;20358:16;19915:38;;;;-1:-1:-1;;;19915:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20132:19:0::1;;::::0;;;20154:4:::1;20132:19;::::0;;;;;;;:26;;-1:-1:-1;;20132:26:0::1;::::0;;::::1;::::0;;20072:94::o;25656:103::-;20013:24;20026:10;20013:12;:24::i;:::-;20005:48;;;;-1:-1:-1;;;20005:48:0;;;;;;;:::i;:::-;25726:14:::1;:25:::0;;-1:-1:-1;;25726:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25656:103::o;25431:::-;20013:24;20026:10;20013:12;:24::i;:::-;20005:48;;;;-1:-1:-1;;;20005:48:0;;;;;;;:::i;:::-;25503:12:::1;:23:::0;25431:103::o;32295:120::-;20334:4;20369:5;-1:-1:-1;;;;;20369:5:0;19931:10;20358:16;19915:38;;;;-1:-1:-1;;;19915:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;32382:17:0;;;::::1;;::::0;;;:5:::1;:17;::::0;;;;:25;;-1:-1:-1;;32382:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;32295:120::o;20174:97::-;20334:4;20369:5;-1:-1:-1;;;;;20369:5:0;19931:10;20358:16;19915:38;;;;-1:-1:-1;;;19915:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20236:19:0::1;20258:5;20236:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;20236:27:0::1;::::0;;20174:97::o;20505:173::-;20334:4;20369:5;-1:-1:-1;;;;;20369:5:0;19931:10;20358:16;19915:38;;;;-1:-1:-1;;;19915:38:0;;;;;;;:::i;:::-;20581:5:::1;:11:::0;;-1:-1:-1;;;;;;20581:11:0::1;-1:-1:-1::0;;;;;20581:11:0;::::1;::::0;;::::1;::::0;;20603:19;;;-1:-1:-1;20603:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;20603:26:0::1;::::0;;::::1;::::0;;;20645:25;;5304:51:1;;;20645:25:0::1;::::0;5277:18:1;20645:25:0::1;;;;;;;20505:173:::0;:::o;25894:131::-;20013:24;20026:10;20013:12;:24::i;:::-;20005:48;;;;-1:-1:-1;;;20005:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25985:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;25985:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25894:131::o;20390:107::-;-1:-1:-1;;;;;20470:19:0;20446:4;20470:19;;;:14;:19;;;;;;;;;20390:107::o;12816:98::-;12874:7;12901:5;12905:1;12901;:5;:::i;13346:240::-;13466:7;13527:12;13519:6;;;;13511:29;;;;-1:-1:-1;;;13511:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;13562:5:0;;;13346:240::o;29386:1790::-;29500:16;;29478:4;;29500:16;;29497:73;;;29526:41;29541:6;29549:9;29560:6;29526:14;:41::i;:::-;29519:48;;;;29497:73;-1:-1:-1;;;;;29586:22:0;;;;;;:14;:22;;;;;;;;29585:23;:53;;;;-1:-1:-1;;;;;;29613:25:0;;;;;;:14;:25;;;;;;;;29612:26;29585:53;29582:128;;;29662:11;;;;29654:44;;;;-1:-1:-1;;;29654:44:0;;10146:2:1;29654:44:0;;;10128:21:1;10185:2;10165:18;;;10158:30;-1:-1:-1;;;10204:18:1;;;10197:50;10264:18;;29654:44:0;9944:344:1;29654:44:0;29740:12;;29730:6;:22;;:52;;;-1:-1:-1;;;;;;29756:26:0;;;;;;:15;:26;;;;;;;;29730:52;29722:82;;;;-1:-1:-1;;;29722:82:0;;8220:2:1;29722:82:0;;;8202:21:1;8259:2;8239:18;;;8232:30;-1:-1:-1;;;8278:18:1;;;8271:47;8335:18;;29722:82:0;8018:341:1;29722:82:0;29834:4;;-1:-1:-1;;;;;29834:4:0;29820:10;:18;;;;:39;;-1:-1:-1;29843:16:0;;;;29842:17;29820:39;:64;;;;-1:-1:-1;29863:21:0;;;;;;;29820:64;:109;;;;-1:-1:-1;29916:13:0;;29906:4;29888:24;;;;:9;:24;;;;;;:41;;29820:109;29817:128;;;29932:10;:8;:10::i;:::-;25318;;:15;;;29960:32;;-1:-1:-1;29988:4:0;;-1:-1:-1;;;;;29975:17:0;;;29988:4;;29975:17;29960:32;29957:96;;;-1:-1:-1;;;;;30017:17:0;;30037:1;30017:17;;;:9;:17;;;;;;30009:30;;;;;;30101:10;;30088;;:23;;;;:::i;:::-;30070:15;:41;30069:64;;;;-1:-1:-1;30129:4:0;;-1:-1:-1;;;;;30116:17:0;;;30129:4;;30116:17;;30069:64;30065:172;;;-1:-1:-1;;;;;30150:16:0;;;;;;:5;:16;;;;;;;;;:23;;-1:-1:-1;;30150:23:0;30169:4;30150:23;;;;;;30193:32;;5304:51:1;;;30169:4:0;;30193:32;;5277:18:1;30193:32:0;;;;;;;30065:172;30296:53;;;;;;;;;;;-1:-1:-1;;;30296:53:0;;;;;;;;-1:-1:-1;;;;;30296:17:0;;-1:-1:-1;30296:17:0;;;:9;:17;;;;;;;;:53;;30318:6;;30296:21;:53::i;:::-;-1:-1:-1;;;;;30276:17:0;;;;;;;:9;:17;;;;;;;;:73;;;;30366:26;;;;;:15;:26;;;;;;;30365:27;:45;;;;-1:-1:-1;30396:14:0;;;;30365:45;30362:141;;;30480:10;;-1:-1:-1;;;;;30444:20:0;;;;;;:9;:20;;;;;;:32;;30469:6;30444:24;:32::i;:::-;:46;;30436:55;;;;;;-1:-1:-1;;;;;30538:19:0;;30515;30538;;;:11;:19;;;;;;;;30537:20;:47;;;;-1:-1:-1;;;;;;30562:22:0;;;;;;:11;:22;;;;;;;;30561:23;30537:47;:93;;30624:6;30537:93;;;30587:34;30595:6;30603:9;30614:6;30587:7;:34::i;:::-;-1:-1:-1;;;;;30664:20:0;;;;;;:9;:20;;;;;;30515:115;;-1:-1:-1;30664:37:0;;30515:115;30664:24;:37::i;:::-;-1:-1:-1;;;;;30641:20:0;;;;;;;:9;:20;;;;;;;;:60;;;;30747:24;;;;;:16;:24;;;;;;;30743:127;;30792:19;;-1:-1:-1;;;;;30829:17:0;;;;;;;:9;:17;;;;;;;;30792:55;;-1:-1:-1;;;30792:55:0;;;;;5764:51:1;;;;5831:18;;;5824:34;30792:19:0;;;;;;:28;;5737:18:1;;30792:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30788:71;;-1:-1:-1;;;;;30886:27:0;;;;;;:16;:27;;;;;;;;30882:136;;30934:19;;-1:-1:-1;;;;;30974:20:0;;;;;;;:9;:20;;;;;;;;30934:61;;-1:-1:-1;;;30934:61:0;;;;;5764:51:1;;;;5831:18;;;5824:34;30934:19:0;;;;;;:28;;5737:18:1;;30934:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30930:77;;31034:19;;31062:14;;31034:43;;-1:-1:-1;;;;;;31034:43:0;;;;;13184:25:1;;;;31034:19:0;;;;-1:-1:-1;;;;;31034:19:0;;:27;;13157:18:1;;31034:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31030:59;31123:9;-1:-1:-1;;;;;31106:40:0;31115:6;-1:-1:-1;;;;;31106:40:0;;31134:11;31106:40;;;;13184:25:1;;13172:2;13157:18;;13038:177;31106:40:0;;;;;;;;-1:-1:-1;31164:4:0;;29386:1790;-1:-1:-1;;;;29386:1790:0:o;12922:98::-;12980:7;13007:5;13011:1;13007;:5;:::i;31184:330::-;31314:53;;;;;;;;;;;-1:-1:-1;;;31314:53:0;;;;;;;;-1:-1:-1;;;;;31314:17:0;;31277:4;31314:17;;;:9;:17;;;;;;;:53;;31336:6;;31314:21;:53::i;:::-;-1:-1:-1;;;;;31294:17:0;;;;;;;:9;:17;;;;;;:73;;;;31401:20;;;;;;;:32;;31426:6;31401:24;:32::i;:::-;-1:-1:-1;;;;;31378:20:0;;;;;;;:9;:20;;;;;;;:55;;;;31449:35;;;;;;;;;;31477:6;13184:25:1;;13172:2;13157:18;;13038:177;31449:35:0;;;;;;;;-1:-1:-1;31502:4:0;31184:330;;;;;:::o;32423:1887::-;22823:16;:23;;-1:-1:-1;;22823:23:0;22842:4;22823:23;;;32521:4:::1;22823:16:::0;32503:24;;;:9:::1;:24:::0;;;;;;;32602:8:::1;::::0;32584:12:::1;::::0;32503:24;;22823:16;32564:54:::1;::::0;32616:1:::1;::::0;32564:47:::1;::::0;32602:8;32564:47;;32503:24;;32564:19:::1;:33::i;:::-;:37:::0;::::1;:47::i;:54::-;32538:80:::0;-1:-1:-1;32629:20:0::1;32652:36;:15:::0;32538:80;32652:19:::1;:36::i;:::-;32725:16;::::0;;32739:1:::1;32725:16:::0;;;;;::::1;::::0;;32629:59;;-1:-1:-1;32701:21:0::1;::::0;32725:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;32725:16:0::1;32701:40;;32770:4;32752;32757:1;32752:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;32752:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;32796:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;32796:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;32752:7;;32796:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;32786:4;32791:1;32786:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;32786:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;32822:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;32822:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;32894:12;;32822:6:::1;::::0;32937:4;;32964::::1;::::0;32984:15:::1;::::0;32822:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;33112:12:0::1;::::0;33043:21:::1;::::0;-1:-1:-1;33023:17:0::1;::::0;-1:-1:-1;33099:33:0::1;::::0;33112:19:::1;::::0;33129:1:::1;33112:16;:19::i;:::-;33099:8;::::0;;:12:::1;:33::i;:::-;33077:55;;33145:26;33174:51;33223:1;33174:44;33206:11;33174:27;33188:12;;33174:9;:13;;:27;;;;:::i;:51::-;33145:80;;33236:27;33266:42;33296:11;33266:25;33280:10;;33266:9;:13;;:25;;;;:::i;:42::-;33236:72:::0;-1:-1:-1;33319:26:0::1;33348:58;33236:72:::0;33348:33:::1;:9:::0;33362:18;33348:13:::1;:33::i;:58::-;33319:87;;33423:19;;;;;;;;;-1:-1:-1::0;;;;;33423:19:0::1;-1:-1:-1::0;;;;;33423:27:0::1;;33458:19;33423:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;33419:73:::0;33504:17:::1;33524:39;33551:11;33524:22;33538:7;;33524:9;:13;;:22;;;;:::i;:39::-;33504:59:::0;-1:-1:-1;33574:22:0::1;33599:33;:18:::0;33504:59;33599:22:::1;:33::i;:::-;33676:15;::::0;33668:68:::1;::::0;33574:58;;-1:-1:-1;33648:15:0::1;::::0;-1:-1:-1;;;;;33676:15:0;;::::1;::::0;33726:5:::1;::::0;33574:58;;33648:15;33668:68;33648:15;33668:68;33574:58;33676:15;33726:5;33668:68:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;33777:10:0::1;::::0;33769:58:::1;::::0;33647:89;;-1:-1:-1;33748:16:0::1;::::0;-1:-1:-1;;;;;33777:10:0;;::::1;::::0;33817:5:::1;::::0;33801:9;;33748:16;33769:58;33748:16;33769:58;33801:9;33777:10;33817:5;33769:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;33893:5:0::1;::::0;-1:-1:-1;33893:5:0;;-1:-1:-1;;33944:19:0;;;-1:-1:-1;33941:362:0::1;;33979:6;::::0;34153:21:::1;::::0;33979:244:::1;::::0;-1:-1:-1;;;33979:244:0;;34055:4:::1;33979:244;::::0;::::1;6489:34:1::0;6539:18;;;6532:34;;;33979:6:0::1;6582:18:1::0;;;6575:34;;;6625:18;;;6618:34;-1:-1:-1;;;;;34153:21:0;;::::1;6668:19:1::0;;;6661:44;34193:15:0::1;6721:19:1::0;;;6714:35;33979:6:0;::::1;::::0;:22:::1;::::0;34009:18;;6423:19:1;;33979:244:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;34243:48:0::1;::::0;;14379:25:1;;;14435:2;14420:18;;14413:34;;;34243:48:0::1;::::0;-1:-1:-1;14352:18:1;34243:48:0::1;;;;;;;33941:362;-1:-1:-1::0;;22869:16:0;:24;;-1:-1:-1;;22869:24:0;;;-1:-1:-1;;;;;;;;;;;32423:1887:0:o;31522:592::-;31654:4;;31608:7;;;;-1:-1:-1;;;;;31654:17:0;;;:4;;:17;:43;;31689:8;;31654:43;;;31674:12;;31654:43;-1:-1:-1;;;;;31711:16:0;;;;;;:5;:16;;;;;;31630:67;;-1:-1:-1;31711:16:0;;:24;;:16;:24;31708:156;;;-1:-1:-1;31766:2:0;31708:156;;;-1:-1:-1;;;;;31798:13:0;;;;;;:5;:13;;;;;;;;:21;;:13;:21;31795:69;;;-1:-1:-1;31850:2:0;31795:69;31874:17;31894:34;31924:3;31894:25;:6;31905:13;31894:10;:25::i;:34::-;31986:4;31968:24;;;;:9;:24;;;;;;31874:54;;-1:-1:-1;31968:39:0;;31874:54;31968:28;:39::i;:::-;31959:4;31941:24;;;;:9;:24;;;;;;;:66;;;;32023:42;;-1:-1:-1;;;;;32023:42:0;;;;;;;32055:9;13184:25:1;;13172:2;13157:18;;13038:177;32023:42:0;;;;;;;;32085:21;:6;32096:9;32085:10;:21::i;:::-;32078:28;31522:592;-1:-1:-1;;;;;;31522:592:0:o;13028:98::-;13086:7;13113:5;13117:1;13113;:5;:::i;13134:98::-;13192:7;13219:5;13223:1;13219;:5;:::i;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;108:60;14:160;;;:::o;179:247::-;238:6;291:2;279:9;270:7;266:23;262:32;259:52;;;307:1;304;297:12;259:52;346:9;333:23;365:31;390:5;365:31;:::i;431:251::-;501:6;554:2;542:9;533:7;529:23;525:32;522:52;;;570:1;567;560:12;522:52;602:9;596:16;621:31;646:5;621:31;:::i;947:388::-;1015:6;1023;1076:2;1064:9;1055:7;1051:23;1047:32;1044:52;;;1092:1;1089;1082:12;1044:52;1131:9;1118:23;1150:31;1175:5;1150:31;:::i;:::-;1200:5;-1:-1:-1;1257:2:1;1242:18;;1229:32;1270:33;1229:32;1270:33;:::i;:::-;1322:7;1312:17;;;947:388;;;;;:::o;1340:529::-;1417:6;1425;1433;1486:2;1474:9;1465:7;1461:23;1457:32;1454:52;;;1502:1;1499;1492:12;1454:52;1541:9;1528:23;1560:31;1585:5;1560:31;:::i;:::-;1610:5;-1:-1:-1;1667:2:1;1652:18;;1639:32;1680:33;1639:32;1680:33;:::i;:::-;1732:7;-1:-1:-1;1791:2:1;1776:18;;1763:32;1804:33;1763:32;1804:33;:::i;:::-;1856:7;1846:17;;;1340:529;;;;;:::o;1874:456::-;1951:6;1959;1967;2020:2;2008:9;1999:7;1995:23;1991:32;1988:52;;;2036:1;2033;2026:12;1988:52;2075:9;2062:23;2094:31;2119:5;2094:31;:::i;:::-;2144:5;-1:-1:-1;2201:2:1;2186:18;;2173:32;2214:33;2173:32;2214:33;:::i;:::-;1874:456;;2266:7;;-1:-1:-1;;;2320:2:1;2305:18;;;;2292:32;;1874:456::o;2335:315::-;2400:6;2408;2461:2;2449:9;2440:7;2436:23;2432:32;2429:52;;;2477:1;2474;2467:12;2429:52;2516:9;2503:23;2535:31;2560:5;2535:31;:::i;:::-;2585:5;-1:-1:-1;2609:35:1;2640:2;2625:18;;2609:35;:::i;:::-;2599:45;;2335:315;;;;;:::o;2655:::-;2723:6;2731;2784:2;2772:9;2763:7;2759:23;2755:32;2752:52;;;2800:1;2797;2790:12;2752:52;2839:9;2826:23;2858:31;2883:5;2858:31;:::i;:::-;2908:5;2960:2;2945:18;;;;2932:32;;-1:-1:-1;;;2655:315:1:o;2975:180::-;3031:6;3084:2;3072:9;3063:7;3059:23;3055:32;3052:52;;;3100:1;3097;3090:12;3052:52;3123:26;3139:9;3123:26;:::i;3160:316::-;3231:6;3239;3247;3300:2;3288:9;3279:7;3275:23;3271:32;3268:52;;;3316:1;3313;3306:12;3268:52;3339:26;3355:9;3339:26;:::i;:::-;3329:36;;3412:2;3401:9;3397:18;3384:32;3374:42;;3435:35;3466:2;3455:9;3451:18;3435:35;:::i;:::-;3425:45;;3160:316;;;;;:::o;3481:180::-;3540:6;3593:2;3581:9;3572:7;3568:23;3564:32;3561:52;;;3609:1;3606;3599:12;3561:52;-1:-1:-1;3632:23:1;;3481:180;-1:-1:-1;3481:180:1:o;3666:323::-;3742:6;3750;3803:2;3791:9;3782:7;3778:23;3774:32;3771:52;;;3819:1;3816;3809:12;3771:52;3855:9;3842:23;3832:33;;3915:2;3904:9;3900:18;3887:32;3928:31;3953:5;3928:31;:::i;3994:248::-;4062:6;4070;4123:2;4111:9;4102:7;4098:23;4094:32;4091:52;;;4139:1;4136;4129:12;4091:52;-1:-1:-1;;4162:23:1;;;4232:2;4217:18;;;4204:32;;-1:-1:-1;3994:248:1:o;4247:306::-;4335:6;4343;4351;4404:2;4392:9;4383:7;4379:23;4375:32;4372:52;;;4420:1;4417;4410:12;4372:52;4449:9;4443:16;4433:26;;4499:2;4488:9;4484:18;4478:25;4468:35;;4543:2;4532:9;4528:18;4522:25;4512:35;;4247:306;;;;;:::o;4558:385::-;4644:6;4652;4660;4668;4721:3;4709:9;4700:7;4696:23;4692:33;4689:53;;;4738:1;4735;4728:12;4689:53;-1:-1:-1;;4761:23:1;;;4831:2;4816:18;;4803:32;;-1:-1:-1;4882:2:1;4867:18;;4854:32;;4933:2;4918:18;4905:32;;-1:-1:-1;4558:385:1;-1:-1:-1;4558:385:1:o;7416:597::-;7528:4;7557:2;7586;7575:9;7568:21;7618:6;7612:13;7661:6;7656:2;7645:9;7641:18;7634:34;7686:1;7696:140;7710:6;7707:1;7704:13;7696:140;;;7805:14;;;7801:23;;7795:30;7771:17;;;7790:2;7767:26;7760:66;7725:10;;7696:140;;;7854:6;7851:1;7848:13;7845:91;;;7924:1;7919:2;7910:6;7899:9;7895:22;7891:31;7884:42;7845:91;-1:-1:-1;7997:2:1;7976:15;-1:-1:-1;;7972:29:1;7957:45;;;;8004:2;7953:54;;7416:597;-1:-1:-1;;;7416:597:1:o;11535:329::-;11737:2;11719:21;;;11776:1;11756:18;;;11749:29;-1:-1:-1;;;11809:2:1;11794:18;;11787:36;11855:2;11840:18;;11535:329::o;12698:335::-;12900:2;12882:21;;;12939:2;12919:18;;;12912:30;-1:-1:-1;;;12973:2:1;12958:18;;12951:41;13024:2;13009:18;;12698:335::o;13220:980::-;13482:4;13530:3;13519:9;13515:19;13561:6;13550:9;13543:25;13587:2;13625:6;13620:2;13609:9;13605:18;13598:34;13668:3;13663:2;13652:9;13648:18;13641:31;13692:6;13727;13721:13;13758:6;13750;13743:22;13796:3;13785:9;13781:19;13774:26;;13835:2;13827:6;13823:15;13809:29;;13856:1;13866:195;13880:6;13877:1;13874:13;13866:195;;;13945:13;;-1:-1:-1;;;;;13941:39:1;13929:52;;14036:15;;;;14001:12;;;;13977:1;13895:9;13866:195;;;-1:-1:-1;;;;;;;14117:32:1;;;;14112:2;14097:18;;14090:60;-1:-1:-1;;;14181:3:1;14166:19;14159:35;14078:3;13220:980;-1:-1:-1;;;13220:980:1:o;14647:128::-;14687:3;14718:1;14714:6;14711:1;14708:13;14705:39;;;14724:18;;:::i;:::-;-1:-1:-1;14760:9:1;;14647:128::o;14780:217::-;14820:1;14846;14836:132;;14890:10;14885:3;14881:20;14878:1;14871:31;14925:4;14922:1;14915:15;14953:4;14950:1;14943:15;14836:132;-1:-1:-1;14982:9:1;;14780:217::o;15002:168::-;15042:7;15108:1;15104;15100:6;15096:14;15093:1;15090:21;15085:1;15078:9;15071:17;15067:45;15064:71;;;15115:18;;:::i;:::-;-1:-1:-1;15155:9:1;;15002:168::o;15175:125::-;15215:4;15243:1;15240;15237:8;15234:34;;;15248:18;;:::i;:::-;-1:-1:-1;15285:9:1;;15175:125::o;15305:127::-;15366:10;15361:3;15357:20;15354:1;15347:31;15397:4;15394:1;15387:15;15421:4;15418:1;15411:15;15437:127;15498:10;15493:3;15489:20;15486:1;15479:31;15529:4;15526:1;15519:15;15553:4;15550:1;15543:15;15701:131;-1:-1:-1;;;;;15776:31:1;;15766:42;;15756:70;;15822:1;15819;15812:12

Swarm Source

ipfs://32b481cc8abec2623bd3a9914487a775c1e16a29e661b20a86eef5d46c619ed5
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.