Contract 0xa2386684B7300C7F7F65474282bADE801b952E03

 

Contract Overview

Balance:
0.002433704980843496 BNB

BNB Value:
$0.92 (@ $376.42/BNB)

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xd8bc9794dcabb34d636084ca561133aa3aab75d95e94f1d5c9d43125a4582deeApprove108792542021-09-13 13:26:099 days 13 hrs ago0x1e12c763d5372fca0592d611e26960449be2e640 IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00007267
0xa01a9ad3ff57b8b142c4fea91d2573f6d329824f952ff013e6be78498e8af65eTransfer108111502021-09-11 4:27:5111 days 22 hrs ago0x6d7a3d4484e746e1307fa58c1fdc64357e519c14 IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00064446
0x03e4b266e674a0ca32e7554fca37838355d742138090d1a13d6d77a9dd36e394Approve101168222021-08-17 19:58:2536 days 7 hrs ago0xfc54582339e0d94badf158a0e450af8dc7410c2b IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00022226
0x61dd9a453daed890e60c19cece79bcaba4fbd517a524c1943c598a96e7afd38dApprove100571542021-08-15 18:06:2238 days 8 hrs ago0xc26efad0326e4fc6c7a523be9615b039b0a158b2 IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00022226
0xac66bcbcfcc4621733d269c23946c0a4a91f4b6569690df284b792852088570bApprove98441842021-08-08 5:04:5845 days 21 hrs ago0xe49349e0c0a7ba6b574de72e4bd7a363661c1694 IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00022226
0x7c5010f3b927614fa4e092e228dc59d915aac5beac72b577f63eefb63da9466aApprove97839912021-08-06 1:16:5448 days 1 hr ago0xe4c7abb696925c428fd80be094ff89eecb2ee406 IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00007267
0x1a8fc98d0b915469b42a9134ef4e180e87513fca04abb758a0847144a9dc7230Approve97504202021-08-04 20:31:4349 days 6 hrs ago0x10b2271297c8ecef94e729e6622509038e314a6e IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00022226
0x43a5fff09275b047293775a1c98bc0821faf27241e64939e3a49642ac684c336Approve97222252021-08-03 20:15:1250 days 6 hrs ago0xfb31e5d33754d19fb57eb4fe4a51e2fb5158e10b IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00022226
0xa0fb5a8a6093c126e8dc17ae405ae5a56256df25d9af4efea95ae51b3cdd423fApprove96511752021-08-01 6:16:5952 days 20 hrs ago0x71e8716e9c6d231ba68781ed67864b81cb84f9db IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00022226
0xcf9000c55639694a543edd6dd4e63617e353141d150e27df5c56d1c43d6381d5Approve95622092021-07-29 1:30:5256 days 1 hr ago0x8946a9c5afed74310d2d5cbdb682fe570c029435 IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00022226
0x648ef0801592dedd85a6855747ad87cf986929bc9b01ce1c872aec4b5c1f6ff3Approve94319922021-07-24 8:20:5860 days 18 hrs ago0xf58c7b5b10b11c6fa1965dd10ee8d4f25ae978bc IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00022226
0xde7bfcde602a8974cb54bc33b664368afcea8ebcd9e814a64ce4b6216f391023Approve94234272021-07-24 1:10:1461 days 1 hr ago0x07d80ae6f36a5e08dca74ce884a24d39db9934ed IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.000149712
0xaeaf1196659faaf4cde4e95d18350bebcebbfbab00c67325a3fe843ed49e18daApprove94234252021-07-24 1:10:0861 days 1 hr ago0x07d80ae6f36a5e08dca74ce884a24d39db9934ed IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.000264912
0x395e347830eb5788509b65d5e2163734accc2fff905f0bd0ae9007d8186aaf1eApprove93984352021-07-23 4:13:1861 days 22 hrs ago0xa0999ed3c0ae4b876eea076d291723ccee759a8f IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00022226
0xa7bbf131c44b68ce22673b055e45c1754048e2ce2728db94437eb19f0668b894Approve89747322021-07-08 10:59:0176 days 16 hrs ago0xd7d116d7535aa724f8be9c482d2c768bc425a23c IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00022226
0xe655d2503bd2f2863943c7901d42cf183af9cd695df1bacf82d117a1ff528c70Approve89577922021-07-07 20:51:4177 days 6 hrs ago0x3e01d9d4e8834f21b1249cb021e47786e6c56256 IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00022226
0x3e6792cf90ce50b1d2cd11dbc18e8338e5161259a78f5757d459dda09ddd2d5bUnlock88841482021-07-05 7:08:2779 days 19 hrs ago0x0504bfacdf8d0348f3280dc16283dd37dd9ee028 IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.000238885
0xe1dfb10af23cfdc53fb2fe906bf9ad40b4e35a27b4989c68fc9d7cc009636343Approve88355522021-07-03 14:22:2481 days 12 hrs ago0xc0a5a6f6c18a615c4462b4d1723c07252e79fa9a IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00022226
0x9ef89c4d56a6869cf56adea1b1d2734537c24e534a1f24c5fe9fd22ddc02cd9eApprove86317542021-06-26 11:14:1988 days 15 hrs ago0x4889cd2e6ceb8ba3d1714aa1409b14ee39ae721d IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00022226
0x790cf1514acb7210183c6268c126f0173f5f03e5bca119fdd4eb828e22b44eddApprove86276882021-06-26 7:50:0688 days 19 hrs ago0xbacf8a6ad1c9fadcce73a536171507106541069b IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00022226
0x39aef1400dfa95051021981d2a48152d0b0ae6ecbf1e7baa811e3e9f1ca9c2c1Approve85553672021-06-23 19:24:0291 days 7 hrs ago0x724dc4ea2f2bd4d8ff6a3ce3110336e1007d0583 IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00022226
0x22447925a21939c46e4b163e8c901df07caeb3bb3c6cc241ff9294b0ee934a83Approve85298362021-06-22 22:00:5092 days 5 hrs ago0x134c10f7ac914656be271b354a06ada5c79f06c3 IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00022226
0x13f89a60928c27f6032885197a50d7b61091769f6e5ee80fd6f2637954149ac8Lock85255812021-06-22 18:27:0992 days 8 hrs ago0x0504bfacdf8d0348f3280dc16283dd37dd9ee028 IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.000106905
0xcaacc8010b1f37e17aefd0a4d2b396262ff8b6e28fd7f09e0be477a1ab5f8ce1Approve85253552021-06-22 18:15:3792 days 8 hrs ago0x7fbade4e8b9f0999407c3a50b11ed142b036b076 IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00022226
0x7ffb8357d5f3203275c20d4101a177e193cc47b203fc724381213b7579b4fe46Set Share Fee Pe...85253302021-06-22 18:14:2292 days 8 hrs ago0x0504bfacdf8d0348f3280dc16283dd37dd9ee028 IN  0xa2386684b7300c7f7f65474282bade801b952e030 BNB0.00015151
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x361cca1d4b1ed4f287c4d00298551d102ea44feb8dade9519fb2f09eb111acfb102035122021-08-20 20:39:2133 days 6 hrs ago 0xa2386684b7300c7f7f65474282bade801b952e03 PancakeSwap: Router v20.001080201109536515 BNB
0x361cca1d4b1ed4f287c4d00298551d102ea44feb8dade9519fb2f09eb111acfb102035122021-08-20 20:39:2133 days 6 hrs ago PancakeSwap: Router v2 0xa2386684b7300c7f7f65474282bade801b952e030.001080201109536515 BNB
0xbeaddc6d139f6dfc027076f8f85930c1e4a41a0772cbee4f9f4ff63ca7217c9297504282021-08-04 20:32:0749 days 6 hrs ago 0xa2386684b7300c7f7f65474282bade801b952e03 PancakeSwap: Router v20.001087697677223798 BNB
0xbeaddc6d139f6dfc027076f8f85930c1e4a41a0772cbee4f9f4ff63ca7217c9297504282021-08-04 20:32:0749 days 6 hrs ago PancakeSwap: Router v2 0xa2386684b7300c7f7f65474282bade801b952e030.001087697677223798 BNB
0xda7422a3a7c706a2f4704021d39ef91f8f159cff85b02a728503d1e4870b85e297222412021-08-03 20:16:0450 days 6 hrs ago 0xa2386684b7300c7f7f65474282bade801b952e03 PancakeSwap: Router v20.001088139755627669 BNB
0xda7422a3a7c706a2f4704021d39ef91f8f159cff85b02a728503d1e4870b85e297222412021-08-03 20:16:0450 days 6 hrs ago PancakeSwap: Router v2 0xa2386684b7300c7f7f65474282bade801b952e030.001088139755627669 BNB
0xf37f120a00bc9681d9acd3e93246beb52b5c801ed362908af9e7609963635e9695504172021-07-28 15:07:2756 days 11 hrs ago 0xa2386684b7300c7f7f65474282bade801b952e03 PancakeSwap: Router v20.001120298415091594 BNB
0xf37f120a00bc9681d9acd3e93246beb52b5c801ed362908af9e7609963635e9695504172021-07-28 15:07:2756 days 11 hrs ago PancakeSwap: Router v2 0xa2386684b7300c7f7f65474282bade801b952e030.001120298415091594 BNB
0xba0be0c3499e89bfc92f43f3eb14ac2b3cd4debe5b36d80294819f83e239323794741452021-07-25 19:52:3659 days 7 hrs ago 0xa2386684b7300c7f7f65474282bade801b952e03 PancakeSwap: Router v20.001123648614614152 BNB
0xba0be0c3499e89bfc92f43f3eb14ac2b3cd4debe5b36d80294819f83e239323794741452021-07-25 19:52:3659 days 7 hrs ago PancakeSwap: Router v2 0xa2386684b7300c7f7f65474282bade801b952e030.001123648614614152 BNB
0x3e6af247a68b1b82a630c75ddddb232654a5cb3f40e3f864da90e225ea33ccec94234292021-07-24 1:10:2061 days 1 hr ago 0xa2386684b7300c7f7f65474282bade801b952e03 PancakeSwap: Router v20.001134058710492692 BNB
0x3e6af247a68b1b82a630c75ddddb232654a5cb3f40e3f864da90e225ea33ccec94234292021-07-24 1:10:2061 days 1 hr ago PancakeSwap: Router v2 0xa2386684b7300c7f7f65474282bade801b952e030.001134058710492692 BNB
0x92be0bdddfbc059d407911e32ad534c4e1f18dea651fc896cd563942493c9e9d94234262021-07-24 1:10:1161 days 1 hr ago 0xa2386684b7300c7f7f65474282bade801b952e03 PancakeSwap: Router v20.001134058710492692 BNB
0x92be0bdddfbc059d407911e32ad534c4e1f18dea651fc896cd563942493c9e9d94234262021-07-24 1:10:1161 days 1 hr ago PancakeSwap: Router v2 0xa2386684b7300c7f7f65474282bade801b952e030.001134058710492692 BNB
0x5d006c2fa706a9f2ada7bc0f3595e6acae7b3debdf8fc2741c44e8435cd52a3893984572021-07-23 4:14:2461 days 22 hrs ago 0xa2386684b7300c7f7f65474282bade801b952e03 PancakeSwap: Router v20.001134172694598754 BNB
0x5d006c2fa706a9f2ada7bc0f3595e6acae7b3debdf8fc2741c44e8435cd52a3893984572021-07-23 4:14:2461 days 22 hrs ago PancakeSwap: Router v2 0xa2386684b7300c7f7f65474282bade801b952e030.001134172694598754 BNB
0x44fbbef2420791bd1039007754c220bc8f1fc0afaaaf6baf6d5976b7bbcd6a5493984472021-07-23 4:13:5461 days 22 hrs ago 0xa2386684b7300c7f7f65474282bade801b952e03 PancakeSwap: Router v20.001138819191431439 BNB
0x44fbbef2420791bd1039007754c220bc8f1fc0afaaaf6baf6d5976b7bbcd6a5493984472021-07-23 4:13:5461 days 22 hrs ago PancakeSwap: Router v2 0xa2386684b7300c7f7f65474282bade801b952e030.001138819191431439 BNB
0x387b011a33b92e5b2ee5c576da7d8d4d204165274415db66c3140027fa56895a89748132021-07-08 11:03:0476 days 16 hrs ago 0xa2386684b7300c7f7f65474282bade801b952e03 PancakeSwap: Router v20.001140023137439876 BNB
0x387b011a33b92e5b2ee5c576da7d8d4d204165274415db66c3140027fa56895a89748132021-07-08 11:03:0476 days 16 hrs ago PancakeSwap: Router v2 0xa2386684b7300c7f7f65474282bade801b952e030.001140023137439876 BNB
0xe082950500a0b5ff0e9bf3f73eaf132bc6c3bf891687cda4d7183b47a939cb3589311762021-07-06 22:40:1878 days 4 hrs ago 0xa2386684b7300c7f7f65474282bade801b952e03 PancakeSwap: Router v20.001146982934237209 BNB
0xe082950500a0b5ff0e9bf3f73eaf132bc6c3bf891687cda4d7183b47a939cb3589311762021-07-06 22:40:1878 days 4 hrs ago PancakeSwap: Router v2 0xa2386684b7300c7f7f65474282bade801b952e030.001146982934237209 BNB
0x3c27ef734c47655870ee7964095fa97e6c03cf6c5e1a9f71583ac89a2292d45288814582021-07-05 4:52:5579 days 22 hrs ago 0xa2386684b7300c7f7f65474282bade801b952e03 PancakeSwap: Router v20.001149852015064204 BNB
0x3c27ef734c47655870ee7964095fa97e6c03cf6c5e1a9f71583ac89a2292d45288814582021-07-05 4:52:5579 days 22 hrs ago PancakeSwap: Router v2 0xa2386684b7300c7f7f65474282bade801b952e030.001149852015064204 BNB
0x765ec026ae085e0a162301ef1472a44c286b6e8dca3365851d3e499548ea475f88355642021-07-03 14:23:0081 days 12 hrs ago 0xa2386684b7300c7f7f65474282bade801b952e03 PancakeSwap: Router v20.001160563411915923 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
STREETDOGE

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-05-30
*/

/**	
Contract Safemoon but better improved by a hidden DEV :)
 */	
pragma solidity 0.6.12;	
// SPDX-License-Identifier: Unlicensed	
interface IERC20 {	
    function totalSupply() external view returns (uint256);	
    /**	
     * @dev Returns the amount of tokens owned by `account`.	
     */	
    function balanceOf(address account) external view returns (uint256);	
    /**	
     * @dev Moves `amount` tokens from the caller's account to `recipient`.	
     *	
     * Returns a boolean value indicating whether the operation succeeded.	
     *	
     * Emits a {Transfer} event.	
     */	
    function transfer(address recipient, uint256 amount) external returns (bool);	
    /**	
     * @dev Returns the remaining number of tokens that `spender` will be	
     * allowed to spend on behalf of `owner` through {transferFrom}. This is	
     * zero by default.	
     *	
     * This value changes when {approve} or {transferFrom} are called.	
     */	
    function allowance(address owner, address spender) external view returns (uint256);	
    /**	
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.	
     *	
     * Returns a boolean value indicating whether the operation succeeded.	
     *	
     * IMPORTANT: Beware that changing an allowance with this method brings the risk	
     * that someone may use both the old and the new allowance by unfortunate	
     * transaction ordering. One possible solution to mitigate this race	
     * condition is to first reduce the spender's allowance to 0 and set the	
     * desired value afterwards:	
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729	
     *	
     * Emits an {Approval} event.	
     */	
    function approve(address spender, uint256 amount) external returns (bool);	
    /**	
     * @dev Moves `amount` tokens from `sender` to `recipient` using the	
     * allowance mechanism. `amount` is then deducted from the caller's	
     * allowance.	
     *	
     * Returns a boolean value indicating whether the operation succeeded.	
     *	
     * Emits a {Transfer} event.	
     */	
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);	
    /**	
     * @dev Emitted when `value` tokens are moved from one account (`from`) to	
     * another (`to`).	
     *	
     * Note that `value` may be zero.	
     */	
    event Transfer(address indexed from, address indexed to, uint256 value);	
    /**	
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by	
     * a call to {approve}. `value` is the new allowance.	
     */	
    event Approval(address indexed owner, address indexed spender, uint256 value);	
}	
/**	
 * @dev Wrappers over Solidity's arithmetic operations with added overflow	
 * checks.	
 *	
 * Arithmetic operations in Solidity wrap on overflow. This can easily result	
 * in bugs, because programmers usually assume that an overflow raises an	
 * error, which is the standard behavior in high level programming languages.	
 * `SafeMath` restores this intuition by reverting the transaction when an	
 * operation overflows.	
 *	
 * Using this library instead of the unchecked operations eliminates an entire	
 * class of bugs, so it's recommended to use it always.	
 */	
 	
library SafeMath {	
    /**	
     * @dev Returns the addition of two unsigned integers, reverting on	
     * overflow.	
     *	
     * Counterpart to Solidity's `+` operator.	
     *	
     * Requirements:	
     *	
     * - Addition cannot overflow.	
     */	
    function add(uint256 a, uint256 b) internal pure returns (uint256) {	
        uint256 c = a + b;	
        require(c >= a, "SafeMath: addition overflow");	
        return c;	
    }	
    /**	
     * @dev Returns the subtraction of two unsigned integers, reverting on	
     * overflow (when the result is negative).	
     *	
     * Counterpart to Solidity's `-` operator.	
     *	
     * Requirements:	
     *	
     * - Subtraction cannot overflow.	
     */	
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {	
        return sub(a, b, "SafeMath: subtraction overflow");	
    }	
    /**	
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on	
     * overflow (when the result is negative).	
     *	
     * Counterpart to Solidity's `-` operator.	
     *	
     * Requirements:	
     *	
     * - Subtraction cannot overflow.	
     */	
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {	
        require(b <= a, errorMessage);	
        uint256 c = a - b;	
        return c;	
    }	
    /**	
     * @dev Returns the multiplication of two unsigned integers, reverting on	
     * overflow.	
     *	
     * Counterpart to Solidity's `*` operator.	
     *	
     * Requirements:	
     *	
     * - Multiplication cannot overflow.	
     */	
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {	
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the	
        // benefit is lost if 'b' is also tested.	
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522	
        if (a == 0) {	
            return 0;	
        }	
        uint256 c = a * b;	
        require(c / a == b, "SafeMath: multiplication overflow");	
        return c;	
    }	
    /**	
     * @dev Returns the integer division of two unsigned integers. Reverts on	
     * division by zero. The result is rounded towards zero.	
     *	
     * Counterpart to Solidity's `/` operator. Note: this function uses a	
     * `revert` opcode (which leaves remaining gas untouched) while Solidity	
     * uses an invalid opcode to revert (consuming all remaining gas).	
     *	
     * Requirements:	
     *	
     * - The divisor cannot be zero.	
     */	
    function div(uint256 a, uint256 b) internal pure returns (uint256) {	
        return div(a, b, "SafeMath: division by zero");	
    }	
    /**	
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on	
     * division by zero. The result is rounded towards zero.	
     *	
     * Counterpart to Solidity's `/` operator. Note: this function uses a	
     * `revert` opcode (which leaves remaining gas untouched) while Solidity	
     * uses an invalid opcode to revert (consuming all remaining gas).	
     *	
     * Requirements:	
     *	
     * - The divisor cannot be zero.	
     */	
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {	
        require(b > 0, errorMessage);	
        uint256 c = a / b;	
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold	
        return c;	
    }	
    /**	
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),	
     * Reverts when dividing by zero.	
     *	
     * Counterpart to Solidity's `%` operator. This function uses a `revert`	
     * opcode (which leaves remaining gas untouched) while Solidity uses an	
     * invalid opcode to revert (consuming all remaining gas).	
     *	
     * Requirements:	
     *	
     * - The divisor cannot be zero.	
     */	
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {	
        return mod(a, b, "SafeMath: modulo by zero");	
    }	
    /**	
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),	
     * Reverts with custom message when dividing by zero.	
     *	
     * Counterpart to Solidity's `%` operator. This function uses a `revert`	
     * opcode (which leaves remaining gas untouched) while Solidity uses an	
     * invalid opcode to revert (consuming all remaining gas).	
     *	
     * Requirements:	
     *	
     * - The divisor cannot be zero.	
     */	
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {	
        require(b != 0, errorMessage);	
        return a % b;	
    }	
}	
abstract contract Context {	
    function _msgSender() internal view virtual returns (address payable) {	
        return msg.sender;	
    }	
    function _msgData() internal view virtual returns (bytes memory) {	
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691	
        return msg.data;	
    }	
}	
/**	
 * @dev Collection of functions related to the address type	
 */	
library Address {	
    /**	
     * @dev Returns true if `account` is a contract.	
     *	
     * [IMPORTANT]	
     * ====	
     * It is unsafe to assume that an address for which this function returns	
     * false is an externally-owned account (EOA) and not a contract.	
     *	
     * Among others, `isContract` will return false for the following	
     * types of addresses:	
     *	
     *  - an externally-owned account	
     *  - a contract in construction	
     *  - an address where a contract will be created	
     *  - an address where a contract lived, but was destroyed	
     * ====	
     */	
    function isContract(address account) internal view returns (bool) {	
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts	
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned	
        // for accounts without code, i.e. `keccak256('')`	
        bytes32 codehash;	
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;	
        // solhint-disable-next-line no-inline-assembly	
        assembly { codehash := extcodehash(account) }	
        return (codehash != accountHash && codehash != 0x0);	
    }	
    /**	
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to	
     * `recipient`, forwarding all available gas and reverting on errors.	
     *	
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost	
     * of certain opcodes, possibly making contracts go over the 2300 gas limit	
     * imposed by `transfer`, making them unable to receive funds via	
     * `transfer`. {sendValue} removes this limitation.	
     *	
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].	
     *	
     * IMPORTANT: because control is transferred to `recipient`, care must be	
     * taken to not create reentrancy vulnerabilities. Consider using	
     * {ReentrancyGuard} or the	
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].	
     */	
    function sendValue(address payable recipient, uint256 amount) internal {	
        require(address(this).balance >= amount, "Address: insufficient balance");	
        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value	
        (bool success, ) = recipient.call{ value: amount }("");	
        require(success, "Address: unable to send value, recipient may have reverted");	
    }	
    /**	
     * @dev Performs a Solidity function call using a low level `call`. A	
     * plain`call` is an unsafe replacement for a function call: use this	
     * function instead.	
     *	
     * If `target` reverts with a revert reason, it is bubbled up by this	
     * function (like regular Solidity function calls).	
     *	
     * Returns the raw returned data. To convert to the expected return value,	
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].	
     *	
     * Requirements:	
     *	
     * - `target` must be a contract.	
     * - calling `target` with `data` must not revert.	
     *	
     * _Available since v3.1._	
     */	
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {	
      return functionCall(target, data, "Address: low-level call failed");	
    }	
    /**	
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with	
     * `errorMessage` as a fallback revert reason when `target` reverts.	
     *	
     * _Available since v3.1._	
     */	
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {	
        return _functionCallWithValue(target, data, 0, errorMessage);	
    }	
    /**	
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],	
     * but also transferring `value` wei to `target`.	
     *	
     * Requirements:	
     *	
     * - the calling contract must have an ETH balance of at least `value`.	
     * - the called Solidity function must be `payable`.	
     *	
     * _Available since v3.1._	
     */	
    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");	
    }	
    /**	
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but	
     * with `errorMessage` as a fallback revert reason when `target` reverts.	
     *	
     * _Available since v3.1._	
     */	
    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");	
        return _functionCallWithValue(target, data, value, errorMessage);	
    }	
    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {	
        require(isContract(target), "Address: call to non-contract");	
        // solhint-disable-next-line avoid-low-level-calls	
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);	
        if (success) {	
            return returndata;	
        } else {	
            // Look for revert reason and bubble it up if present	
            if (returndata.length > 0) {	
                // The easiest way to bubble the revert reason is using memory via assembly	
                // solhint-disable-next-line no-inline-assembly	
                assembly {	
                    let returndata_size := mload(returndata)	
                    revert(add(32, returndata), returndata_size)	
                }	
            } else {	
                revert(errorMessage);	
            }	
        }	
    }	
}	
/**	
 * @dev Contract module which provides a basic access control mechanism, where	
 * there is an account (an owner) that can be granted exclusive access to	
 * specific functions.	
 *	
 * By default, the owner account will be the one that deploys the contract. This	
 * can later be changed with {transferOwnership}.	
 *	
 * This module is used through inheritance. It will make available the modifier	
 * `onlyOwner`, which can be applied to your functions to restrict their use to	
 * the owner.	
 */	
contract Ownable is Context {	
    address private _owner;	
    address private _previousOwner;	
    uint256 private _lockTime;	
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);	
    /**	
     * @dev Initializes the contract setting the deployer as the initial owner.	
     */	
    constructor () internal {	
        address msgSender = _msgSender();	
        _owner = msgSender;	
        emit OwnershipTransferred(address(0), msgSender);	
    }	
    /**	
     * @dev Returns the address of the current owner.	
     */	
    function owner() public view returns (address) {	
        return _owner;	
    }	
    /**	
     * @dev Throws if called by any account other than the owner.	
     */	
    modifier onlyOwner() {	
        require(_owner == _msgSender(), "Ownable: caller is not the owner");	
        _;	
    }	
     /**	
     * @dev Leaves the contract without owner. It will not be possible to call	
     * `onlyOwner` functions anymore. Can only be called by the current owner.	
     *	
     * NOTE: Renouncing ownership will leave the contract without an owner,	
     * thereby removing any functionality that is only available to the owner.	
     */	
    function renounceOwnership() external virtual onlyOwner {	
        emit OwnershipTransferred(_owner, address(0));	
        _owner = address(0);	
    }	
    /**	
     * @dev Transfers ownership of the contract to a new account (`newOwner`).	
     * Can only be called by the current owner.	
     */	
    function transferOwnership(address newOwner) external virtual onlyOwner {	
        require(newOwner != address(0), "Ownable: new owner is the zero address");	
        emit OwnershipTransferred(_owner, newOwner);	
        _owner = newOwner;	
    }	
    function getUnlockTime() external view returns (uint256) {	
        return _lockTime;	
    }	
    function getTime() external view returns (uint256) {
        return now;
    }
    //Locks the contract for owner for the amount of time provided	
    function lock(uint256 time) external virtual onlyOwner {	
        _previousOwner = _owner;	
        _owner = address(0);	
        _lockTime = now + time;	
        emit OwnershipTransferred(_owner, address(0));	
    }	
    	
    //Unlocks the contract for owner when _lockTime is exceeds	
    function unlock() external virtual {	
        require(_previousOwner == msg.sender, "You don't have permission to unlock");	
        require(now > _lockTime , "Contract is locked until 7 days");	
        emit OwnershipTransferred(_owner, _previousOwner);	
        _owner = _previousOwner;	
    }	
}	
// pragma solidity >=0.5.0;	
interface IPancakeswapV2Factory {	
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);	
    function feeTo() external view returns (address);	
    function feeToSetter() external view returns (address);	
    function getPair(address tokenA, address tokenB) external view returns (address pair);	
    function allPairs(uint) external view returns (address pair);	
    function allPairsLength() external view returns (uint);	
    function createPair(address tokenA, address tokenB) external returns (address pair);	
    function setFeeTo(address) external;	
    function setFeeToSetter(address) external;	
}	
// pragma solidity >=0.5.0;	
interface IPancakeswapV2Pair {	
    event Approval(address indexed owner, address indexed spender, uint value);	
    event Transfer(address indexed from, address indexed to, uint value);	
    function name() external pure returns (string memory);	
    function symbol() external pure returns (string memory);	
    function decimals() external pure returns (uint8);	
    function totalSupply() external view returns (uint);	
    function balanceOf(address owner) external view returns (uint);	
    function allowance(address owner, address spender) external view returns (uint);	
    function approve(address spender, uint value) external returns (bool);	
    function transfer(address to, uint value) external returns (bool);	
    function transferFrom(address from, address to, uint value) external returns (bool);	
    function DOMAIN_SEPARATOR() external view returns (bytes32);	
    function PERMIT_TYPEHASH() external pure returns (bytes32);	
    function nonces(address owner) external view returns (uint);	
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;	
    event Mint(address indexed sender, uint amount0, uint amount1);	
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);	
    event Swap(	
        address indexed sender,	
        uint amount0In,	
        uint amount1In,	
        uint amount0Out,	
        uint amount1Out,	
        address indexed to	
    );	
    event Sync(uint112 reserve0, uint112 reserve1);	
    function MINIMUM_LIQUIDITY() external pure returns (uint);	
    function factory() external view returns (address);	
    function token0() external view returns (address);	
    function token1() external view returns (address);	
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);	
    function price0CumulativeLast() external view returns (uint);	
    function price1CumulativeLast() external view returns (uint);	
    function kLast() external view returns (uint);	
    function mint(address to) external returns (uint liquidity);	
    function burn(address to) external returns (uint amount0, uint amount1);	
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;	
    function skim(address to) external;	
    function sync() external;	
    function initialize(address, address) external;	
}	
// pragma solidity >=0.6.2;	
interface IPancakeswapV2Router01 {	
    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);	
}	
// pragma solidity >=0.6.2;	
interface IPancakeswapV2Router02 is IPancakeswapV2Router01 {	
    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;	
}	

//Please remind yourself to change the decimals everywhere
contract STREETDOGE is Context, IERC20, Ownable {	
    using SafeMath for uint256;	
    using Address for address;	
    mapping (address => uint256) private _rOwned;	
    mapping (address => uint256) private _tOwned;	
    mapping (address => mapping (address => uint256)) private _allowances;	
    // 2 Mappings - one for the fundfee and one for the other fees
    mapping (address => bool) private _isExcludedFromFee;	
    mapping (address => bool) private _isExcluded;	
    	
    mapping(address=>bool) private _isExcludedFromFundFee;	
    address[] private _excluded;	
   	
    uint256 private constant MAX = ~uint256(0);	
    uint256 private constant _tTotal = 200000000000 * 10**6;	
    uint256 private _rTotal = (MAX - (MAX % _tTotal));	
    uint256 private _tFeeTotal;	
    string private constant _name = "STREETDOGE";	
    string private constant _symbol = "SDOGE";	
    uint8 private constant _decimals = 6;	
    	
    uint256 public _fundFee = 0;	
    uint256 private _previousFundFee = _fundFee;	
    	
    address public _fundWallet = _msgSender();	
    address public _previousFundWallet = _fundWallet;	
    	
    uint256 public _shareFee = 0;	
    uint256 private _previousTaxFee = _shareFee;	
    	
    uint256 public _liquidityFee = 0;	
    uint256 private _previousLiquidityFee = _liquidityFee;	
    IPancakeswapV2Router02 public immutable pancakeswapV2Router;	
    address public immutable pancakeswapV2Pair;	
    address public pancakeswapRouterAddress = 0x10ED43C718714eb63d5aA57B78B54704E256024E;   // it's pointing to Mainnet
    	//Mainnet: 0x10ED43C718714eb63d5aA57B78B54704E256024E
    	//Testnet 0xD99D1c33F9fC3444f8101754aBC46c52416550D1
    bool inSwapAndLiquify;	
    bool public swapAndLiquifyEnabled = false;	
    	
    uint256 public _maxTxAmount = 200000000000 * 10**6;	
    

      uint256 private minimumTokensBeforeSwap = 2000000;
    	
    event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);	
    event SwapAndLiquifyEnabledUpdated(bool enabled);	
    event SwapAndLiquify(	
        uint256 tokensSwapped,	
        uint256 ethReceived,	
        uint256 tokensIntoLiquidity	
    );	
    event ExcludeFromReward(address);	
    event IncludeInReward(address);	
    event ExcludeFromLiquidityFee(address);	
    event IncludeInLiquidityFee(address);	
    event TaxFeeUpdated(uint256,uint256);	
    event LiquidityFeeUpdated(uint256,uint256);	
    event FundFee(uint256,uint256);	
    event OwnerTaxAccountUpdated(address,address);	
    event ExcludedFromFundFee(address);	
    event IncludedInFundFee(address);
    event newPancakeswapRouterAddress(address);
    	
    modifier lockTheSwap {	
        inSwapAndLiquify = true;	
        _;	
        inSwapAndLiquify = false;	
    }	
    	
    constructor() public {	
        _rOwned[_msgSender()] = _rTotal;	
        	
        	
        //Mainnet :0x10ED43C718714eb63d5aA57B78B54704E256024E	
        //Testnet: 0xD99D1c33F9fC3444f8101754aBC46c52416550D1	
        IPancakeswapV2Router02 _pancakeswapV2Router = IPancakeswapV2Router02(pancakeswapRouterAddress);	
         // Create a pancakeswap pair for this new token	
        pancakeswapV2Pair = IPancakeswapV2Factory(_pancakeswapV2Router.factory())	
            .createPair(address(this), _pancakeswapV2Router.WETH());	
        // set the rest of the contract variables	
        pancakeswapV2Router = _pancakeswapV2Router;	
        	
        //exclude owner and this contract from fee	
        _isExcludedFromFee[owner()] = true;	
        _isExcludedFromFee[address(this)] = true;	
        	
        //exclude owner and this contract from fee	
        _isExcludedFromFundFee[owner()] = true;	
        _isExcludedFromFundFee[address(this)] = true;	
        	
        emit Transfer(address(0), _msgSender(), _tTotal);	
    }	
    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 _tTotal;	
    }	
    function balanceOf(address account) public view override returns (uint256) {	
        if (_isExcluded[account]) return _tOwned[account];	
        return tokenFromReflection(_rOwned[account]);	
    }	
    function transfer(address recipient, uint256 amount) external override returns (bool) {	
        _transfer(_msgSender(), recipient, amount);	
        return true;	
    }	
    function allowance(address owner, address spender) external view override returns (uint256) {	
        return _allowances[owner][spender];	
    }	
    function approve(address spender, uint256 amount) external override returns (bool) {	
        _approve(_msgSender(), spender, amount);	
        return true;	
    }	
    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {	
        _transfer(sender, recipient, amount);	
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));	
        return true;	
    }	
    function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool) {	
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));	
        return true;	
    }	
    function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) {	
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));	
        return true;	
    }	
    function isExcludedFromReward(address account) external view returns (bool) {	
        return _isExcluded[account];	
    }	
    function totalFees() external view returns (uint256) {	
        return _tFeeTotal;	
    }	
    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) external view returns(uint256) {	
        require(tAmount <= _tTotal, "Amount must be less than supply");	
        if (!deductTransferFee) {	
            (uint256 rAmount,,,,,) = _getValues(tAmount);	
            return rAmount;	
        } else {	
            (,uint256 rTransferAmount,,,,) = _getValues(tAmount);	
            return rTransferAmount;	
        }	
    }	
    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {	
        require(rAmount <= _rTotal, "Amount must be less than total reflections");	
        uint256 currentRate =  _getRate();	
        return rAmount.div(currentRate);	
    }	
	
    function includeInReward(address account) external onlyOwner() {	
        require(_isExcluded[account], "Account is not excluded");	
        for (uint256 i = 0; i < _excluded.length; i++) {	
            if (_excluded[i] == account) {	
                _excluded[i] = _excluded[_excluded.length - 1];	
                _tOwned[account] = 0;	
                _isExcluded[account] = false;	
                _excluded.pop();	
                break;	
            }	
        }	
        	
        emit IncludeInReward(account);	
    }	
        function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {	
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);	
        _tOwned[sender] = _tOwned[sender].sub(tAmount);	
        _rOwned[sender] = _rOwned[sender].sub(rAmount);	
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);	
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);        	
        _takeLiquidity(tLiquidity);	
        _reflectFee(rFee, tFee);	
        emit Transfer(sender, recipient, tTransferAmount);	
    }	
    	
    function excludeFromLiquidityFee(address account) external onlyOwner {	
        _isExcludedFromFee[account] = true;	
        emit ExcludeFromLiquidityFee(account);	
    }	
    
    function setminimumTokensBeforeSwap(uint256 _minimumTokensBeforeSwap) external onlyOwner() {
minimumTokensBeforeSwap = _minimumTokensBeforeSwap;
}
    	function minimumTokensBeforeSwapAmount() public view returns (uint256) {
return minimumTokensBeforeSwap;
}
    	

    	
   function excludedFromFundFee(address account) external onlyOwner {	
        _isExcludedFromFundFee[account] = true;	
        emit ExcludedFromFundFee(account);	
    }	
        function includeInLiquidityFee(address account) external onlyOwner {	
         require( _isExcludedFromFee[account], "Account is not excluded From liquidityFee");	
        _isExcludedFromFee[account] = false;	
        emit IncludeInLiquidityFee(account);	
    }	
       	
    function excludeFromReward(address account) external onlyOwner() {	
        // require(account != 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, 'We can not exclude Pancakeswap router.');	
        require(!_isExcluded[account], "Account is not excluded");	
        if(_rOwned[account] > 0) {	
            _tOwned[account] = tokenFromReflection(_rOwned[account]);	
        }	
        _isExcluded[account] = true;	
        _excluded.push(account);	
        	
        emit ExcludeFromReward(account);	
    }
    	
    function includeInFundFee(address account) external onlyOwner{	
         require( _isExcludedFromFundFee[account], "Account is not excluded From FundFee");	
        _isExcludedFromFundFee[account] = false;	
        emit IncludedInFundFee(account);	
        	
    }	
    	
   	
    function setShareFeePercent(uint256 taxFee) external onlyOwner() {	
        _previousTaxFee = _shareFee;	
        _shareFee = taxFee;	
        emit TaxFeeUpdated(_previousTaxFee,_shareFee);	
    }	
    	
    function setLiquidityFeePercent(uint256 liquidityFee) external onlyOwner() {	
        _previousLiquidityFee = _liquidityFee;	
        _liquidityFee = liquidityFee;	
        	
        emit LiquidityFeeUpdated(_previousLiquidityFee,_liquidityFee);	
    }	
   	
    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(
            10000
        );
    }	
    	
    function setFundFeePercent(uint256 _fundFeePercent) external onlyOwner() {	
        _previousFundFee = _fundFee;	
        _fundFee = _fundFeePercent;	
        emit FundFee(_previousFundFee,_fundFee);	
    }	
    	
    	
    function setOwnerTaxAccount(address _account) external onlyOwner() {	
        _previousFundWallet = _fundWallet;	
        _fundWallet = _account;	
        	
        emit OwnerTaxAccountUpdated(_previousFundWallet,_fundWallet);	
    }	
    	
    	
    	
    function setSwapAndLiquifyEnabled(bool _enabled) external onlyOwner {	
        swapAndLiquifyEnabled = _enabled;	
        emit SwapAndLiquifyEnabledUpdated(_enabled);	
    }	
    	
     //to receive ETH from pancakeswapV2Router when swapping	
    receive() external payable {}	
    	
    	
    	//Withdrawing stuck BNBs from the contract
	     function withdrawStuckBNBs() external onlyOwner {	
         msg.sender.transfer(address(this).balance);	
     }	
     
     //Burning the stuck tokens to the FeeWallet
         function burnStuckTokens() external onlyOwner {
        _tokenTransfer(address(this) ,address(0) ,balanceOf(address(this)) ,false);
    }
    	
    	
    function _reflectFee(uint256 rFee, uint256 tFee) private {	
        _rTotal = _rTotal.sub(rFee);	
        _tFeeTotal = _tFeeTotal.add(tFee);	
    }	
    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {	
        (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount);	
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, _getRate());	
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tLiquidity);	
    }	
    function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256) {	
        uint256 tFee = calculateTaxFee(tAmount);	
        uint256 tLiquidity = calculateLiquidityFee(tAmount);	
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tLiquidity);	
        return (tTransferAmount, tFee, tLiquidity);	
    }	
    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tLiquidity, uint256 currentRate) private pure returns (uint256, uint256, uint256) {	
        uint256 rAmount = tAmount.mul(currentRate);	
        uint256 rFee = tFee.mul(currentRate);	
        uint256 rLiquidity = tLiquidity.mul(currentRate);	
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rLiquidity);	
        return (rAmount, rTransferAmount, rFee);	
    }	
    function _getRate() private view returns(uint256) {	
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();	
        return rSupply.div(tSupply);	
    }	
    function _getCurrentSupply() private view returns(uint256, uint256) {	
        uint256 rSupply = _rTotal;	
        uint256 tSupply = _tTotal;      	
        for (uint256 i = 0; i < _excluded.length; i++) {	
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);	
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);	
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);	
        }	
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);	
        return (rSupply, tSupply);	
    }	
    	
    function _takeLiquidity(uint256 tLiquidity) private {	
        uint256 currentRate =  _getRate();	
        uint256 rLiquidity = tLiquidity.mul(currentRate);	
        _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity);	
        if(_isExcluded[address(this)])	
            _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity);	
    }	
    	
    function calculateTaxFee(uint256 _amount) private view returns (uint256) {	
        return _amount.mul(_shareFee).div(	
            10**2	
        );	
    }	
    function calculateLiquidityFee(uint256 _amount) private view returns (uint256) {	
        return _amount.mul(_liquidityFee).div(	
            10**2	
        );	
    }	
    	
    function removeAllFee() private {	
        if(_shareFee == 0 && _liquidityFee == 0) return;	
        	
        _previousTaxFee = _shareFee;	
        _previousLiquidityFee = _liquidityFee;	
        	
        _shareFee = 0;	
        _liquidityFee = 0;	
    }	
    	
    function restoreAllFee() private {	
        _shareFee = _previousTaxFee;	
        _liquidityFee = _previousLiquidityFee;	
    }	
    	
    function isExcludedFromFee(address account) external view returns(bool) {	
        return _isExcludedFromFee[account];	
    }	
    function _approve(address owner, address spender, uint256 amount) private {	
        require(owner != address(0), "ERC20: approve from the zero address");	
        require(spender != address(0), "ERC20: approve to the zero address");	
        _allowances[owner][spender] = amount;	
        emit Approval(owner, spender, amount);	
    }	
    function _transfer(	
        address from,	
        address to,	
        uint256 amount	
    ) private {	
        require(from != address(0), "ERC20: transfer from the zero address");	
        require(to != address(0), "ERC20: transfer to the zero address");	
        require(amount > 0, "Transfer amount must be greater than zero");	
        if(from != owner() && to != owner())	
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");	
            	
            	
            	
            	
        	
        	
        // is the token balance of this contract address over the min number of	
        // tokens that we need to initiate a swap + liquidity lock?	
        // also, don't get caught in a circular liquidity event.	
        // also, don't swap & liquify if sender is pancakeswap pair.	
        uint256 contractTokenBalance = balanceOf(address(this));	
        	
        if(contractTokenBalance >= _maxTxAmount)	
        {	
            contractTokenBalance = _maxTxAmount;	
        }	
        	
        bool overMinTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;	
        if (	
            overMinTokenBalance &&	
            !inSwapAndLiquify &&	
            from != pancakeswapV2Pair &&	
            swapAndLiquifyEnabled	
        ) {	
            contractTokenBalance = minimumTokensBeforeSwap;	
            //add liquidity	
            swapAndLiquify(contractTokenBalance);	
        }	
        	
        //indicates if fee should be deducted from transfer	
        bool takeFee = true;	
        	
        //if any account belongs to _isExcludedFromFee account then remove the fee	
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){	
            takeFee = false;	
        }	
        	
        	
        if(_isExcludedFromFundFee[from]){	
          _tokenTransfer(from,to,amount,takeFee);  	
                	
        }else {	
            	
         //send tax to owner	
        uint256 _amountSentToOwner = amount.mul(_fundFee).div(10**2);	
        uint256 _remainingAmount =  amount.sub(_amountSentToOwner);	
            	
        _tokenTransfer(from,_fundWallet,_amountSentToOwner,takeFee);	
        //transfer amount, it will take tax, burn, liquidity fee	
        _tokenTransfer(from,to,_remainingAmount,takeFee);	
            	
        }	
        	
        	
        	
    }	
    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {	
        // split the contract balance into halves	
        uint256 half = contractTokenBalance.div(2);	
        uint256 otherHalf = contractTokenBalance.sub(half);	
        // capture the contract's current ETH balance.	
        // this is so that we can capture exactly the amount of ETH that the	
        // swap creates, and not make the liquidity event include any ETH that	
        // has been manually sent to the contract	
        uint256 initialBalance = address(this).balance;	
        // swap tokens for ETH	
        swapTokensForEth(half); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered	
        // how much ETH did we just swap into?	
        uint256 newBalance = address(this).balance.sub(initialBalance);	
        // add liquidity to pancakeswap	
        addLiquidity(otherHalf, newBalance);	
        	
        emit SwapAndLiquify(half, newBalance, otherHalf);	
    }	
    function swapTokensForEth(uint256 tokenAmount) private {	
        // generate the pancakeswap pair path of token -> weth	
        address[] memory path = new address[](2);	
        path[0] = address(this);	
        path[1] = pancakeswapV2Router.WETH();	
        _approve(address(this), address(pancakeswapV2Router), tokenAmount);	
        // make the swap	
        pancakeswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(	
            tokenAmount,	
            0, // accept any amount of ETH	
            path,	
            address(this),	
            block.timestamp	
        );	
    }	
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {	
        // approve token transfer to cover all possible scenarios	
        _approve(address(this), address(pancakeswapV2Router), tokenAmount);	
        // add the liquidity	
        pancakeswapV2Router.addLiquidityETH{value: ethAmount}(	
            address(this),	
            tokenAmount,	
            0, // slippage is unavoidable	
            0, // slippage is unavoidable	
            owner(),	
            block.timestamp	
        );	
    }	
    //this method is responsible for taking all fee, if takeFee is true	
    function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private {	
        if(!takeFee)	
            removeAllFee();	
        	
        if (_isExcluded[sender] && !_isExcluded[recipient]) {	
            _transferFromExcluded(sender, recipient, amount);	
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {	
            _transferToExcluded(sender, recipient, amount);	
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {	
            _transferBothExcluded(sender, recipient, amount);	
        } else {	
            _transferStandard(sender, recipient, amount);	
        }	
        	
        if(!takeFee)	
            restoreAllFee();	
    }	
    function _transferStandard(address sender, address recipient, uint256 tAmount) private {	
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);	
        _rOwned[sender] = _rOwned[sender].sub(rAmount);	
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);	
        _takeLiquidity(tLiquidity);	
        _reflectFee(rFee, tFee);	
        emit Transfer(sender, recipient, tTransferAmount);	
    }	
    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {	
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);	
        _rOwned[sender] = _rOwned[sender].sub(rAmount);	
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);	
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);           	
        _takeLiquidity(tLiquidity);	
        _reflectFee(rFee, tFee);	
        emit Transfer(sender, recipient, tTransferAmount);	
    }	
    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {	
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);	
        _tOwned[sender] = _tOwned[sender].sub(tAmount);	
        _rOwned[sender] = _rOwned[sender].sub(rAmount);	
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);   	
        _takeLiquidity(tLiquidity);	
        _reflectFee(rFee, tFee);	
        emit Transfer(sender, recipient, tTransferAmount);	
    }
    
    function setPancakeSwapRouterAddress(address _newRouterAddress) external onlyOwner {
        
        pancakeswapRouterAddress = _newRouterAddress;
        
        emit newPancakeswapRouterAddress(_newRouterAddress);
        
        
    }
    
    	
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"ExcludeFromLiquidityFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"ExcludeFromReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"ExcludedFromFundFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"FundFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"IncludeInLiquidityFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"IncludeInReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"IncludedInFundFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"LiquidityFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"OwnerTaxAccountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"TaxFeeUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"newPancakeswapRouterAddress","type":"event"},{"inputs":[],"name":"_fundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_fundWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_previousFundWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_shareFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromLiquidityFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludedFromFundFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFundFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInLiquidityFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pancakeswapRouterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pancakeswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pancakeswapV2Router","outputs":[{"internalType":"contract IPancakeswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fundFeePercent","type":"uint256"}],"name":"setFundFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"setOwnerTaxAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newRouterAddress","type":"address"}],"name":"setPancakeSwapRouterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"setShareFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minimumTokensBeforeSwap","type":"uint256"}],"name":"setminimumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckBNBs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c060405267028dba38d9f3ffff19600a556000600c819055600d5562000025620003bd565b600e80546001600160a01b039283166001600160a01b03199182161791829055600f80548216929093169190911790915560006010819055601181905560128190556013556014805460ff60a81b1992167310ed43c718714eb63d5aa57b78b54704e256024e179190911690556702c68af0bb140000601555621e8480601655348015620000b257600080fd5b506000620000bf620003bd565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600a54600360006200011a620003bd565b6001600160a01b039081168252602080830193909352604091820160002093909355601454815163c45a015560e01b81529151931692839263c45a01559260048082019391829003018186803b1580156200017457600080fd5b505afa15801562000189573d6000803e3d6000fd5b505050506040513d6020811015620001a057600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929186169163ad5c464891600480820192602092909190829003018186803b158015620001f157600080fd5b505afa15801562000206573d6000803e3d6000fd5b505050506040513d60208110156200021d57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b1580156200027057600080fd5b505af115801562000285573d6000803e3d6000fd5b505050506040513d60208110156200029c57600080fd5b50516001600160601b0319606091821b811660a0529082901b16608052600160066000620002c9620003c1565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152600690925281208054909216600190811790925560089062000319620003c1565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152600890925290208054909116600117905562000363620003bd565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6702c68af0bb1400006040518082815260200191505060405180910390a350620003d0565b3390565b6000546001600160a01b031690565b60805160601c60a05160601c61328962000418600039806115b05280612199525080611df95280612c645280612d1c5280612d435280612e295280612e5052506132896000f3fe6080604052600436106102cd5760003560e01c80636bc87c3a11610175578063a69df4b5116100dc578063dd46706411610095578063e5dffed31161006f578063e5dffed314610a63578063ee5bf4df14610a78578063f2fde38b14610a8d578063fe18896f14610ac0576102d4565b8063dd467064146109e9578063dd62ed3e14610a13578063e2db427814610a4e576102d4565b8063a69df4b51461091b578063a9059cbb14610930578063c49b9a8014610969578063d543dbeb14610995578063d6f2d87c146109bf578063d91eb81b146109d4576102d4565b80638ee88c531161012e5780638ee88c531461084657806395d89b411461087057806396e8cb3d146108855780639d4dc9b11461089a578063a073d37f146108cd578063a457c2d7146108e2576102d4565b80636bc87c3a1461078c57806370a08231146107a1578063715018a6146107d45780637d1db4a5146107e957806388f82020146107fe5780638da5cb5b14610831576102d4565b806331a569511161023457806352390c02116101ed5780635364f651116101c75780635364f65114610705578063557ed1ba1461072f5780635f427eb014610744578063602bc62b14610777576102d4565b806352390c021461066e57806352892884146106a15780635342acb4146106d2576102d4565b806331a56951146105735780633685d419146105a657806339509351146105d95780634549b039146106125780634a74bb02146106445780634f6e920914610659576102d4565b806320671fe21161028657806320671fe21461045457806323b872dd1461047e57806325671515146104c15780632d2892b8146104f45780632d8381191461051e578063313ce56714610548576102d4565b8063042e33de146102d957806306fdde031461030e578063095ea7b31461039857806313114a9d146103e5578063135d96341461040c57806318160ddd1461043f576102d4565b366102d457005b600080fd5b3480156102e557600080fd5b5061030c600480360360208110156102fc57600080fd5b50356001600160a01b0316610ad5565b005b34801561031a57600080fd5b50610323610b88565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561035d578181015183820152602001610345565b50505050905090810190601f16801561038a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a457600080fd5b506103d1600480360360408110156103bb57600080fd5b506001600160a01b038135169060200135610bac565b604080519115158252519081900360200190f35b3480156103f157600080fd5b506103fa610bca565b60408051918252519081900360200190f35b34801561041857600080fd5b5061030c6004803603602081101561042f57600080fd5b50356001600160a01b0316610bd0565b34801561044b57600080fd5b506103fa610cd7565b34801561046057600080fd5b5061030c6004803603602081101561047757600080fd5b5035610ce3565b34801561048a57600080fd5b506103d1600480360360608110156104a157600080fd5b506001600160a01b03813581169160208101359091169060400135610d40565b3480156104cd57600080fd5b5061030c600480360360208110156104e457600080fd5b50356001600160a01b0316610dc7565b34801561050057600080fd5b5061030c6004803603602081101561051757600080fd5b5035610ece565b34801561052a57600080fd5b506103fa6004803603602081101561054157600080fd5b5035610f70565b34801561055457600080fd5b5061055d610fd2565b6040805160ff9092168252519081900360200190f35b34801561057f57600080fd5b5061030c6004803603602081101561059657600080fd5b50356001600160a01b0316610fd7565b3480156105b257600080fd5b5061030c600480360360208110156105c957600080fd5b50356001600160a01b0316611083565b3480156105e557600080fd5b506103d1600480360360408110156105fc57600080fd5b506001600160a01b03813516906020013561127a565b34801561061e57600080fd5b506103fa6004803603604081101561063557600080fd5b508035906020013515156112c8565b34801561065057600080fd5b506103d1611360565b34801561066557600080fd5b5061030c611370565b34801561067a57600080fd5b5061030c6004803603602081101561069157600080fd5b50356001600160a01b03166113f7565b3480156106ad57600080fd5b506106b66115ae565b604080516001600160a01b039092168252519081900360200190f35b3480156106de57600080fd5b506103d1600480360360208110156106f557600080fd5b50356001600160a01b03166115d2565b34801561071157600080fd5b5061030c6004803603602081101561072857600080fd5b50356115f0565b34801561073b57600080fd5b506103fa611692565b34801561075057600080fd5b5061030c6004803603602081101561076757600080fd5b50356001600160a01b0316611696565b34801561078357600080fd5b506103fa611749565b34801561079857600080fd5b506103fa61174f565b3480156107ad57600080fd5b506103fa600480360360208110156107c457600080fd5b50356001600160a01b0316611755565b3480156107e057600080fd5b5061030c6117b7565b3480156107f557600080fd5b506103fa611847565b34801561080a57600080fd5b506103d16004803603602081101561082157600080fd5b50356001600160a01b031661184d565b34801561083d57600080fd5b506106b661186b565b34801561085257600080fd5b5061030c6004803603602081101561086957600080fd5b503561187a565b34801561087c57600080fd5b5061032361191c565b34801561089157600080fd5b5061030c61193b565b3480156108a657600080fd5b5061030c600480360360208110156108bd57600080fd5b50356001600160a01b03166119ab565b3480156108d957600080fd5b506103fa611a73565b3480156108ee57600080fd5b506103d16004803603604081101561090557600080fd5b506001600160a01b038135169060200135611a79565b34801561092757600080fd5b5061030c611ae1565b34801561093c57600080fd5b506103d16004803603604081101561095357600080fd5b506001600160a01b038135169060200135611bcf565b34801561097557600080fd5b5061030c6004803603602081101561098c57600080fd5b50351515611be3565b3480156109a157600080fd5b5061030c600480360360208110156109b857600080fd5b5035611c8e565b3480156109cb57600080fd5b506106b6611d0a565b3480156109e057600080fd5b506103fa611d19565b3480156109f557600080fd5b5061030c60048036036020811015610a0c57600080fd5b5035611d1f565b348015610a1f57600080fd5b506103fa60048036036040811015610a3657600080fd5b506001600160a01b0381358116916020013516611dbd565b348015610a5a57600080fd5b506106b6611de8565b348015610a6f57600080fd5b506106b6611df7565b348015610a8457600080fd5b506103fa611e1b565b348015610a9957600080fd5b5061030c60048036036020811015610ab057600080fd5b50356001600160a01b0316611e21565b348015610acc57600080fd5b506106b6611f07565b610add611f16565b6000546001600160a01b03908116911614610b2d576040805162461bcd60e51b81526020600482018190526024820152600080516020613131833981519152604482015290519081900360640190fd5b6001600160a01b038116600081815260086020908152604091829020805460ff19166001179055815192835290517f7904882718989546a03838c53e5451e8ac9b76c1d58c9166c50a45506b5cb4dd9281900390910190a150565b60408051808201909152600a815269535452454554444f474560b01b602082015290565b6000610bc0610bb9611f16565b8484611f1a565b5060015b92915050565b600b5490565b610bd8611f16565b6000546001600160a01b03908116911614610c28576040805162461bcd60e51b81526020600482018190526024820152600080516020613131833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526008602052604090205460ff16610c7f5760405162461bcd60e51b815260040180806020018281038252602481526020018061309c6024913960400191505060405180910390fd5b6001600160a01b038116600081815260086020908152604091829020805460ff19169055815192835290517f399050a42598bb9037a694e54db6f52a2ee75f9f7bb7baafa96bda1f2eb198d59281900390910190a150565b6702c68af0bb14000090565b610ceb611f16565b6000546001600160a01b03908116911614610d3b576040805162461bcd60e51b81526020600482018190526024820152600080516020613131833981519152604482015290519081900360640190fd5b601655565b6000610d4d848484612006565b610dbd84610d59611f16565b610db885604051806060016040528060288152602001613109602891396001600160a01b038a16600090815260056020526040812090610d97611f16565b6001600160a01b0316815260208101919091526040016000205491906122d0565b611f1a565b5060019392505050565b610dcf611f16565b6000546001600160a01b03908116911614610e1f576040805162461bcd60e51b81526020600482018190526024820152600080516020613131833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526006602052604090205460ff16610e765760405162461bcd60e51b81526004018080602001828103825260298152602001806131bf6029913960400191505060405180910390fd5b6001600160a01b038116600081815260066020908152604091829020805460ff19169055815192835290517f89975a0ad4fcb4fe8a2ac2c3eff707cc6efcd4b0d891e1659ec382c9162fd0749281900390910190a150565b610ed6611f16565b6000546001600160a01b03908116911614610f26576040805162461bcd60e51b81526020600482018190526024820152600080516020613131833981519152604482015290519081900360640190fd5b600c8054600d81905590829055604080519182526020820183905280517ffe19877e8030814e5ba0afe297385003951479c562615b3380da722e009c71d29281900390910190a150565b6000600a54821115610fb35760405162461bcd60e51b815260040180806020018281038252602a81526020018061302a602a913960400191505060405180910390fd5b6000610fbd612367565b9050610fc9838261238a565b9150505b919050565b600690565b610fdf611f16565b6000546001600160a01b0390811691161461102f576040805162461bcd60e51b81526020600482018190526024820152600080516020613131833981519152604482015290519081900360640190fd5b601480546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fa0b1f6cea092ca2ac351475d7a95ca9d3104f72cd2cdefa1aa7b98e558595b5b9181900360200190a150565b61108b611f16565b6000546001600160a01b039081169116146110db576040805162461bcd60e51b81526020600482018190526024820152600080516020613131833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526007602052604090205460ff16611142576040805162461bcd60e51b81526020600482015260176024820152761058d8dbdd5b9d081a5cc81b9bdd08195e18db1d591959604a1b604482015290519081900360640190fd5b60005b60095481101561123a57816001600160a01b03166009828154811061116657fe5b6000918252602090912001546001600160a01b031614156112325760098054600019810190811061119357fe5b600091825260209091200154600980546001600160a01b0390921691839081106111b957fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600790925220805460ff19169055600980548061120b57fe5b600082815260209020810160001990810180546001600160a01b031916905501905561123a565b600101611145565b50604080516001600160a01b038316815290517fb31990b399410eeea874c2c81063feb4b5e55f66f46004a8306f10a81f031d3f9181900360200190a150565b6000610bc0611287611f16565b84610db88560056000611298611f16565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906123d3565b60006702c68af0bb140000831115611327576040805162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015290519081900360640190fd5b816113465760006113378461242d565b50939550610bc4945050505050565b60006113518461242d565b50929550610bc4945050505050565b601454600160a81b900460ff1681565b611378611f16565b6000546001600160a01b039081169116146113c8576040805162461bcd60e51b81526020600482018190526024820152600080516020613131833981519152604482015290519081900360640190fd5b60405133904780156108fc02916000818181858888f193505050501580156113f4573d6000803e3d6000fd5b50565b6113ff611f16565b6000546001600160a01b0390811691161461144f576040805162461bcd60e51b81526020600482018190526024820152600080516020613131833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526007602052604090205460ff16156114b7576040805162461bcd60e51b81526020600482015260176024820152761058d8dbdd5b9d081a5cc81b9bdd08195e18db1d591959604a1b604482015290519081900360640190fd5b6001600160a01b03811660009081526003602052604090205415611511576001600160a01b0381166000908152600360205260409020546114f790610f70565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b0381166000818152600760209081526040808320805460ff191660019081179091556009805491820181559093527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af90920180546001600160a01b03191684179055815192835290517f6f6f36b62c3e3a776fc3052d503097ffb886d7eb4546e768132fef82747e30b99281900390910190a150565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b031660009081526006602052604090205460ff1690565b6115f8611f16565b6000546001600160a01b03908116911614611648576040805162461bcd60e51b81526020600482018190526024820152600080516020613131833981519152604482015290519081900360640190fd5b60108054601181905590829055604080519182526020820183905280517f2211abb4bbc4d80b7505c31b54d01d15ac6e33a42c59540d309d89daf759063a9281900390910190a150565b4290565b61169e611f16565b6000546001600160a01b039081169116146116ee576040805162461bcd60e51b81526020600482018190526024820152600080516020613131833981519152604482015290519081900360640190fd5b6001600160a01b038116600081815260066020908152604091829020805460ff19166001179055815192835290517ff78511bfd19f922dfc826a189e7a3de19a409f6c17990606dd0ddf552b25e4be9281900390910190a150565b60025490565b60125481565b6001600160a01b03811660009081526007602052604081205460ff161561179557506001600160a01b038116600090815260046020526040902054610fcd565b6001600160a01b038216600090815260036020526040902054610bc490610f70565b6117bf611f16565b6000546001600160a01b0390811691161461180f576040805162461bcd60e51b81526020600482018190526024820152600080516020613131833981519152604482015290519081900360640190fd5b600080546040516001600160a01b0390911690600080516020613151833981519152908390a3600080546001600160a01b0319169055565b60155481565b6001600160a01b031660009081526007602052604090205460ff1690565b6000546001600160a01b031690565b611882611f16565b6000546001600160a01b039081169116146118d2576040805162461bcd60e51b81526020600482018190526024820152600080516020613131833981519152604482015290519081900360640190fd5b60128054601381905590829055604080519182526020820183905280517f2596ea4192286cc20062cf773414aef3b23a5b57b4bdc47f888e9d9059d838c49281900390910190a150565b60408051808201909152600581526453444f474560d81b602082015290565b611943611f16565b6000546001600160a01b03908116911614611993576040805162461bcd60e51b81526020600482018190526024820152600080516020613131833981519152604482015290519081900360640190fd5b6119a93060006119a230611755565b600061247c565b565b6119b3611f16565b6000546001600160a01b03908116911614611a03576040805162461bcd60e51b81526020600482018190526024820152600080516020613131833981519152604482015290519081900360640190fd5b600e8054600f80546001600160a01b038084166001600160a01b031992831617928390559216848316179283905560408051918316825292909116602082015281517f6fada4688f7fed227ace4890a7a363fa188f815ea4280c01d7419bcca1ecf994929181900390910190a150565b60165490565b6000610bc0611a86611f16565b84610db88560405180606001604052806025815260200161322f6025913960056000611ab0611f16565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906122d0565b6001546001600160a01b03163314611b2a5760405162461bcd60e51b815260040180806020018281038252602381526020018061320c6023913960400191505060405180910390fd5b6002544211611b80576040805162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c2037206461797300604482015290519081900360640190fd5b600154600080546040516001600160a01b03938416939091169160008051602061315183398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610bc0611bdc611f16565b8484612006565b611beb611f16565b6000546001600160a01b03908116911614611c3b576040805162461bcd60e51b81526020600482018190526024820152600080516020613131833981519152604482015290519081900360640190fd5b60148054821515600160a81b810260ff60a81b199092169190911790915560408051918252517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599181900360200190a150565b611c96611f16565b6000546001600160a01b03908116911614611ce6576040805162461bcd60e51b81526020600482018190526024820152600080516020613131833981519152604482015290519081900360640190fd5b611d04612710611cfe6702c68af0bb1400008461259e565b9061238a565b60155550565b6014546001600160a01b031681565b600c5481565b611d27611f16565b6000546001600160a01b03908116911614611d77576040805162461bcd60e51b81526020600482018190526024820152600080516020613131833981519152604482015290519081900360640190fd5b60008054600180546001600160a01b03199081166001600160a01b038416179091551681554282016002556040518190600080516020613151833981519152908290a350565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b600e546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60105481565b611e29611f16565b6000546001600160a01b03908116911614611e79576040805162461bcd60e51b81526020600482018190526024820152600080516020613131833981519152604482015290519081900360640190fd5b6001600160a01b038116611ebe5760405162461bcd60e51b81526004018080602001828103825260268152602001806130546026913960400191505060405180910390fd5b600080546040516001600160a01b038085169392169160008051602061315183398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600f546001600160a01b031681565b3390565b6001600160a01b038316611f5f5760405162461bcd60e51b81526004018080602001828103825260248152602001806131e86024913960400191505060405180910390fd5b6001600160a01b038216611fa45760405162461bcd60e51b815260040180806020018281038252602281526020018061307a6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260056020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661204b5760405162461bcd60e51b815260040180806020018281038252602581526020018061319a6025913960400191505060405180910390fd5b6001600160a01b0382166120905760405162461bcd60e51b81526004018080602001828103825260238152602001806130076023913960400191505060405180910390fd5b600081116120cf5760405162461bcd60e51b81526004018080602001828103825260298152602001806131716029913960400191505060405180910390fd5b6120d761186b565b6001600160a01b0316836001600160a01b03161415801561211157506120fb61186b565b6001600160a01b0316826001600160a01b031614155b15612157576015548111156121575760405162461bcd60e51b81526004018080602001828103825260288152602001806130c06028913960400191505060405180910390fd5b600061216230611755565b9050601554811061217257506015545b601654811080159081906121905750601454600160a01b900460ff16155b80156121ce57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b80156121e35750601454600160a81b900460ff165b156121f65760165491506121f6826125f7565b6001600160a01b03851660009081526006602052604090205460019060ff168061223857506001600160a01b03851660009081526006602052604090205460ff165b15612241575060005b6001600160a01b03861660009081526008602052604090205460ff16156122735761226e8686868461247c565b6122c8565b600061228f6064611cfe600c548861259e90919063ffffffff16565b9050600061229d868361269d565b600e549091506122b99089906001600160a01b0316848661247c565b6122c58888838661247c565b50505b505050505050565b6000818484111561235f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561232457818101518382015260200161230c565b50505050905090810190601f1680156123515780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008060006123746126df565b9092509050612383828261238a565b9250505090565b60006123cc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061285a565b9392505050565b6000828201838110156123cc576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008060008060008060008060006124448a6128bf565b92509250925060008060006124628d868661245d612367565b612901565b919f909e50909c50959a5093985091965092945050505050565b8061248957612489612951565b6001600160a01b03841660009081526007602052604090205460ff1680156124ca57506001600160a01b03831660009081526007602052604090205460ff16155b156124df576124da848484612982565b61258b565b6001600160a01b03841660009081526007602052604090205460ff1615801561252057506001600160a01b03831660009081526007602052604090205460ff165b15612530576124da848484612aa6565b6001600160a01b03841660009081526007602052604090205460ff16801561257057506001600160a01b03831660009081526007602052604090205460ff165b15612580576124da848484612b4f565b61258b848484612bc2565b8061259857612598612c06565b50505050565b6000826125ad57506000610bc4565b828202828482816125ba57fe5b04146123cc5760405162461bcd60e51b81526004018080602001828103825260218152602001806130e86021913960400191505060405180910390fd5b6014805460ff60a01b1916600160a01b179055600061261782600261238a565b90506000612625838361269d565b90504761263183612c14565b600061263d478361269d565b90506126498382612e23565b604080518581526020810183905280820185905290517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a150506014805460ff60a01b19169055505050565b60006123cc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122d0565b600a5460009081906702c68af0bb140000825b60095481101561281c5782600360006009848154811061270e57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612773575081600460006009848154811061274c57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561279057600a546702c68af0bb14000094509450505050612856565b6127d060036000600984815481106127a457fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054849061269d565b925061281260046000600984815481106127e657fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054839061269d565b91506001016126f2565b50600a54612832906702c68af0bb14000061238a565b82101561285057600a546702c68af0bb140000935093505050612856565b90925090505b9091565b600081836128a95760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561232457818101518382015260200161230c565b5060008385816128b557fe5b0495945050505050565b6000806000806128ce85612f21565b905060006128db86612f3d565b905060006128f3826128ed898661269d565b9061269d565b979296509094509092505050565b6000808080612910888661259e565b9050600061291e888761259e565b9050600061292c888861259e565b9050600061293e826128ed868661269d565b939b939a50919850919650505050505050565b6010541580156129615750601254155b1561296b576119a9565b601080546011556012805460135560009182905555565b6000806000806000806129948761242d565b6001600160a01b038f16600090815260046020526040902054959b509399509197509550935091506129c6908861269d565b6001600160a01b038a166000908152600460209081526040808320939093556003905220546129f5908761269d565b6001600160a01b03808b1660009081526003602052604080822093909355908a1681522054612a2490866123d3565b6001600160a01b038916600090815260036020526040902055612a4681612f59565b612a508483612fe2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b600080600080600080612ab88761242d565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150612aea908761269d565b6001600160a01b03808b16600090815260036020908152604080832094909455918b16815260049091522054612b2090846123d3565b6001600160a01b038916600090815260046020908152604080832093909355600390522054612a2490866123d3565b600080600080600080612b618761242d565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150612b93908861269d565b6001600160a01b038a16600090815260046020908152604080832093909355600390522054612aea908761269d565b600080600080600080612bd48761242d565b6001600160a01b038f16600090815260036020526040902054959b509399509197509550935091506129f5908761269d565b601154601055601354601255565b60408051600280825260608083018452926020830190803683370190505090503081600081518110612c4257fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612cbb57600080fd5b505afa158015612ccf573d6000803e3d6000fd5b505050506040513d6020811015612ce557600080fd5b5051815182906001908110612cf657fe5b60200260200101906001600160a01b031690816001600160a01b031681525050612d41307f000000000000000000000000000000000000000000000000000000000000000084611f1a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663791ac9478360008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015612de6578181015183820152602001612dce565b505050509050019650505050505050600060405180830381600087803b158015612e0f57600080fd5b505af11580156122c8573d6000803e3d6000fd5b612e4e307f000000000000000000000000000000000000000000000000000000000000000084611f1a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d719823085600080612e8b61186b565b426040518863ffffffff1660e01b815260040180876001600160a01b03168152602001868152602001858152602001848152602001836001600160a01b0316815260200182815260200196505050505050506060604051808303818588803b158015612ef657600080fd5b505af1158015612f0a573d6000803e3d6000fd5b50505050506040513d606081101561259857600080fd5b6000610bc46064611cfe6010548561259e90919063ffffffff16565b6000610bc46064611cfe6012548561259e90919063ffffffff16565b6000612f63612367565b90506000612f71838361259e565b30600090815260036020526040902054909150612f8e90826123d3565b3060009081526003602090815260408083209390935560079052205460ff1615612fdd5730600090815260046020526040902054612fcc90846123d3565b306000908152600460205260409020555b505050565b600a54612fef908361269d565b600a55600b54612fff90826123d3565b600b55505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573734163636f756e74206973206e6f74206578636c756465642046726f6d2046756e644665655472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f20616464726573734163636f756e74206973206e6f74206578636c756465642046726f6d206c697175696469747946656545524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636b45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c494920ce652bb0acbb9ef02d74b62491191d1ba96789f04e33e1970f5e9457064736f6c634300060c0033

Deployed ByteCode Sourcemap

26322:22688:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34763:169;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34763:169:0;-1:-1:-1;;;;;34763:169:0;;:::i;:::-;;30186:87;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31119:166;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;31119:166:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;32260:91;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;35749:269;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;35749:269:0;-1:-1:-1;;;;;35749:269:0;;:::i;30472:99::-;;;;;;;;;;;;;:::i;34479:148::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34479:148:0;;:::i;31292:319::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;31292:319:0;;;;;;;;;;;;;;;;;:::i;34943:265::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34943:265:0;-1:-1:-1;;;;;34943:265:0;;:::i;36698:210::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;36698:210:0;;:::i;32812:257::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32812:257:0;;:::i;30378:87::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;48746:248;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;48746:248:0;-1:-1:-1;;;;;48746:248:0;;:::i;33079:538::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33079:538:0;-1:-1:-1;;;;;33079:538:0;;:::i;31618:223::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;31618:223:0;;;;;;;;:::i;32358:447::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32358:447:0;;;;;;;;;:::i;28058:41::-;;;;;;;;;;;;;:::i;37549:113::-;;;;;;;;;;;;;:::i;35225:511::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;35225:511:0;-1:-1:-1;;;;;35225:511:0;;:::i;27739:42::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;27739:42:0;;;;;;;;;;;;;;41167:127;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;41167:127:0;-1:-1:-1;;;;;41167:127:0;;:::i;36038:200::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;36038:200:0;;:::i;17250:80::-;;;;;;;;;;;;;:::i;34293:173::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34293:173:0;-1:-1:-1;;;;;34293:173:0;;:::i;17149:94::-;;;;;;;;;;;;;:::i;27571:32::-;;;;;;;;;;;;;:::i;30578:201::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30578:201:0;-1:-1:-1;;;;;30578:201:0;;:::i;16581:153::-;;;;;;;;;;;;;:::i;28114:50::-;;;;;;;;;;;;;:::i;32129:124::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32129:124:0;-1:-1:-1;;;;;32129:124:0;;:::i;15925:81::-;;;;;;;;;;;;;:::i;36252:257::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;36252:257:0;;:::i;30280:91::-;;;;;;;;;;;;;:::i;37731:139::-;;;;;;;;;;;;;:::i;36929:238::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;36929:238:0;-1:-1:-1;;;;;36929:238:0;;:::i;34634:108::-;;;;;;;;;;;;;:::i;31848:274::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;31848:274:0;;;;;;;;:::i;17705:300::-;;;;;;;;;;;;;:::i;30786:172::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;30786:172:0;;;;;;;;:::i;37195:176::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;37195:176:0;;;;:::i;36522:162::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;36522:162:0;;:::i;27789:84::-;;;;;;;;;;;;;:::i;27272:27::-;;;;;;;;;;;;;:::i;17405:221::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17405:221:0;;:::i;30965:147::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;30965:147:0;;;;;;;;;;:::i;27365:41::-;;;;;;;;;;;;;:::i;27672:59::-;;;;;;;;;;;;;:::i;27477:28::-;;;;;;;;;;;;;:::i;16892:250::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16892:250:0;-1:-1:-1;;;;;16892:250:0;;:::i;27414:48::-;;;;;;;;;;;;;:::i;34763:169::-;16152:12;:10;:12::i;:::-;16142:6;;-1:-1:-1;;;;;16142:6:0;;;:22;;;16134:67;;;;;-1:-1:-1;;;16134:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16134:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;34840:31:0;::::1;;::::0;;;:22:::1;:31;::::0;;;;;;;;:38;;-1:-1:-1;;34840:38:0::1;34874:4;34840:38;::::0;;34895:28;;;;;;;::::1;::::0;;;;;;;;::::1;34763:169:::0;:::o;30186:87::-;30259:5;;;;;;;;;;;;-1:-1:-1;;;30259:5:0;;;;30186:87;:::o;31119:166::-;31196:4;31214:39;31223:12;:10;:12::i;:::-;31237:7;31246:6;31214:8;:39::i;:::-;-1:-1:-1;31272:4:0;31119:166;;;;;:::o;32260:91::-;32332:10;;32260:91;:::o;35749:269::-;16152:12;:10;:12::i;:::-;16142:6;;-1:-1:-1;;;;;16142:6:0;;;:22;;;16134:67;;;;;-1:-1:-1;;;16134:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16134:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;35832:31:0;::::1;;::::0;;;:22:::1;:31;::::0;;;;;::::1;;35823:81;;;;-1:-1:-1::0;;;35823:81:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;35916:31:0;::::1;35950:5;35916:31:::0;;;:22:::1;:31;::::0;;;;;;;;:39;;-1:-1:-1;;35916:39:0::1;::::0;;35972:26;;;;;;;::::1;::::0;;;;;;;;::::1;35749:269:::0;:::o;30472:99::-;27001:20;30472:99;:::o;34479:148::-;16152:12;:10;:12::i;:::-;16142:6;;-1:-1:-1;;;;;16142:6:0;;;:22;;;16134:67;;;;;-1:-1:-1;;;16134:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16134:67:0;;;;;;;;;;;;;;;34573:23:::1;:50:::0;34479:148::o;31292:319::-;31392:4;31410:36;31420:6;31428:9;31439:6;31410:9;:36::i;:::-;31458:121;31467:6;31475:12;:10;:12::i;:::-;31489:89;31527:6;31489:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;31489:19:0;;;;;;:11;:19;;;;;;31509:12;:10;:12::i;:::-;-1:-1:-1;;;;;31489:33:0;;;;;;;;;;;;-1:-1:-1;31489:33:0;;;:89;:37;:89::i;:::-;31458:8;:121::i;:::-;-1:-1:-1;31598:4:0;31292:319;;;;;:::o;34943:265::-;16152:12;:10;:12::i;:::-;16142:6;;-1:-1:-1;;;;;16142:6:0;;;:22;;;16134:67;;;;;-1:-1:-1;;;16134:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16134:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;35032:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;35023:82;;;;-1:-1:-1::0;;;35023:82:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;35117:27:0;::::1;35147:5;35117:27:::0;;;:18:::1;:27;::::0;;;;;;;;:35;;-1:-1:-1;;35117:35:0::1;::::0;;35169:30;;;;;;;::::1;::::0;;;;;;;;::::1;34943:265:::0;:::o;36698:210::-;16152:12;:10;:12::i;:::-;16142:6;;-1:-1:-1;;;;;16142:6:0;;;:22;;;16134:67;;;;;-1:-1:-1;;;16134:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16134:67:0;;;;;;;;;;;;;;;36802:8:::1;::::0;;36783:16:::1;:27:::0;;;36822:26;;;;36865:34:::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;::::1;36698:210:::0;:::o;32812:257::-;32878:7;32918;;32907;:18;;32899:73;;;;-1:-1:-1;;;32899:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32984:19;33007:10;:8;:10::i;:::-;32984:33;-1:-1:-1;33036:24:0;:7;32984:33;33036:11;:24::i;:::-;33029:31;;;32812:257;;;;:::o;30378:87::-;27256:1;30378:87;:::o;48746:248::-;16152:12;:10;:12::i;:::-;16142:6;;-1:-1:-1;;;;;16142:6:0;;;:22;;;16134:67;;;;;-1:-1:-1;;;16134:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16134:67:0;;;;;;;;;;;;;;;48850:24:::1;:44:::0;;-1:-1:-1;;;;;48850:44:0;::::1;-1:-1:-1::0;;;;;;48850:44:0;;::::1;::::0;::::1;::::0;;;48920:46:::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;48746:248:::0;:::o;33079:538::-;16152:12;:10;:12::i;:::-;16142:6;;-1:-1:-1;;;;;16142:6:0;;;:22;;;16134:67;;;;;-1:-1:-1;;;16134:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16134:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;33162:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;33154:56;;;::::0;;-1:-1:-1;;;33154:56:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;33154:56:0;;;;;;;;;;;;;::::1;;33227:9;33222:335;33246:9;:16:::0;33242:20;::::1;33222:335;;;33305:7;-1:-1:-1::0;;;;;33289:23:0::1;:9;33299:1;33289:12;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;33289:12:0::1;:23;33285:260;;;33349:9;33359:16:::0;;-1:-1:-1;;33359:20:0;;;33349:31;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;33334:9:::1;:12:::0;;-1:-1:-1;;;;;33349:31:0;;::::1;::::0;33344:1;;33334:12;::::1;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;33334:46:0::1;-1:-1:-1::0;;;;;33334:46:0;;::::1;;::::0;;33400:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;33440:11:::1;:20:::0;;;;:28;;-1:-1:-1;;33440:28:0::1;::::0;;33488:9:::1;:15:::0;;;::::1;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;33488:15:0;;;;;-1:-1:-1;;;;;;33488:15:0::1;::::0;;;;;33523:5:::1;;33285:260;33264:3;;33222:335;;;-1:-1:-1::0;33584:24:0::1;::::0;;-1:-1:-1;;;;;33584:24:0;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;::::1;33079:538:::0;:::o;31618:223::-;31708:4;31726:83;31735:12;:10;:12::i;:::-;31749:7;31758:50;31797:10;31758:11;:25;31770:12;:10;:12::i;:::-;-1:-1:-1;;;;;31758:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;31758:25:0;;;:34;;;;;;;;;;;:38;:50::i;32358:447::-;32450:7;27001:20;32479:7;:18;;32471:62;;;;;-1:-1:-1;;;32471:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;32550:17;32545:252;;32586:15;32610:19;32621:7;32610:10;:19::i;:::-;-1:-1:-1;32585:44:0;;-1:-1:-1;32645:14:0;;-1:-1:-1;;;;;32645:14:0;32545:252;32696:23;32727:19;32738:7;32727:10;:19::i;:::-;-1:-1:-1;32694:52:0;;-1:-1:-1;32762:22:0;;-1:-1:-1;;;;;32762:22:0;28058:41;;;-1:-1:-1;;;28058:41:0;;;;;:::o;37549:113::-;16152:12;:10;:12::i;:::-;16142:6;;-1:-1:-1;;;;;16142:6:0;;;:22;;;16134:67;;;;;-1:-1:-1;;;16134:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16134:67:0;;;;;;;;;;;;;;;37610:42:::1;::::0;:10:::1;::::0;37630:21:::1;37610:42:::0;::::1;;;::::0;::::1;::::0;;;37630:21;37610:10;:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;37549:113::o:0;35225:511::-;16152:12;:10;:12::i;:::-;16142:6;;-1:-1:-1;;;;;16142:6:0;;;:22;;;16134:67;;;;;-1:-1:-1;;;16134:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16134:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;35430:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;35429:21;35421:57;;;::::0;;-1:-1:-1;;;35421:57:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;35421:57:0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;35493:16:0;::::1;35512:1;35493:16:::0;;;:7:::1;:16;::::0;;;;;:20;35490:110:::1;;-1:-1:-1::0;;;;;35570:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;35550:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;35531:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;35490:110:::1;-1:-1:-1::0;;;;;35611:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;;;:27;;-1:-1:-1;;35611:27:0::1;35634:4;35611:27:::0;;::::1;::::0;;;35650:9:::1;:23:::0;;;;::::1;::::0;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;35650:23:0::1;::::0;::::1;::::0;;35701:26;;;;;;;::::1;::::0;;;;;;;;::::1;35225:511:::0;:::o;27739:42::-;;;:::o;41167:127::-;-1:-1:-1;;;;;41258:27:0;41233:4;41258:27;;;:18;:27;;;;;;;;;41167:127::o;36038:200::-;16152:12;:10;:12::i;:::-;16142:6;;-1:-1:-1;;;;;16142:6:0;;;:22;;;16134:67;;;;;-1:-1:-1;;;16134:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16134:67:0;;;;;;;;;;;;;;;36133:9:::1;::::0;;36115:15:::1;:27:::0;;;36154:18;;;;36189:40:::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;::::1;36038:200:::0;:::o;17250:80::-;17319:3;17250:80;:::o;34293:173::-;16152:12;:10;:12::i;:::-;16142:6;;-1:-1:-1;;;;;16142:6:0;;;:22;;;16134:67;;;;;-1:-1:-1;;;16134:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16134:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;34374:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;;;;:34;;-1:-1:-1;;34374:34:0::1;34404:4;34374:34;::::0;;34425:32;;;;;;;::::1;::::0;;;;;;;;::::1;34293:173:::0;:::o;17149:94::-;17225:9;;17149:94;:::o;27571:32::-;;;;:::o;30578:201::-;-1:-1:-1;;;;;30669:20:0;;30644:7;30669:20;;;:11;:20;;;;;;;;30665:49;;;-1:-1:-1;;;;;;30698:16:0;;;;;;:7;:16;;;;;;30691:23;;30665:49;-1:-1:-1;;;;;30753:16:0;;;;;;:7;:16;;;;;;30733:37;;:19;:37::i;16581:153::-;16152:12;:10;:12::i;:::-;16142:6;;-1:-1:-1;;;;;16142:6:0;;;:22;;;16134:67;;;;;-1:-1:-1;;;16134:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16134:67:0;;;;;;;;;;;;;;;16691:1:::1;16675:6:::0;;16654:40:::1;::::0;-1:-1:-1;;;;;16675:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;16654:40:0;16691:1;;16654:40:::1;16723:1;16706:19:::0;;-1:-1:-1;;;;;;16706:19:0::1;::::0;;16581:153::o;28114:50::-;;;;:::o;32129:124::-;-1:-1:-1;;;;;32224:20:0;32199:4;32224:20;;;:11;:20;;;;;;;;;32129:124::o;15925:81::-;15963:7;15991:6;-1:-1:-1;;;;;15991:6:0;15925:81;:::o;36252:257::-;16152:12;:10;:12::i;:::-;16142:6;;-1:-1:-1;;;;;16142:6:0;;;:22;;;16134:67;;;;;-1:-1:-1;;;16134:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16134:67:0;;;;;;;;;;;;;;;36363:13:::1;::::0;;36339:21:::1;:37:::0;;;36388:28;;;;36444:56:::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;::::1;36252:257:::0;:::o;30280:91::-;30355:7;;;;;;;;;;;;-1:-1:-1;;;30355:7:0;;;;30280:91;:::o;37731:139::-;16152:12;:10;:12::i;:::-;16142:6;;-1:-1:-1;;;;;16142:6:0;;;:22;;;16134:67;;;;;-1:-1:-1;;;16134:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16134:67:0;;;;;;;;;;;;;;;37788:74:::1;37811:4;37826:1;37830:24;37848:4;37830:9;:24::i;:::-;37856:5;37788:14;:74::i;:::-;37731:139::o:0;36929:238::-;16152:12;:10;:12::i;:::-;16142:6;;-1:-1:-1;;;;;16142:6:0;;;:22;;;16134:67;;;;;-1:-1:-1;;;16134:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16134:67:0;;;;;;;;;;;;;;;37030:11:::1;::::0;;37008:19:::1;:33:::0;;-1:-1:-1;;;;;37030:11:0;;::::1;-1:-1:-1::0;;;;;;37008:33:0;;::::1;;::::0;;;;37053:22;::::1;::::0;;::::1;;::::0;;;;37103:55:::1;::::0;;37126:19;;::::1;37103:55:::0;;37146:11;;;::::1;37103:55;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;;::::1;36929:238:::0;:::o;34634:108::-;34715:23;;34634:108;:::o;31848:274::-;31943:4;31961:129;31970:12;:10;:12::i;:::-;31984:7;31993:96;32032:15;31993:96;;;;;;;;;;;;;;;;;:11;:25;32005:12;:10;:12::i;:::-;-1:-1:-1;;;;;31993:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;31993:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;17705:300::-;17760:14;;-1:-1:-1;;;;;17760:14:0;17778:10;17760:28;17752:76;;;;-1:-1:-1;;;17752:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17854:9;;17848:3;:15;17840:60;;;;;-1:-1:-1;;;17840:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17946:14;;;17938:6;;17917:44;;-1:-1:-1;;;;;17946:14:0;;;;17938:6;;;;-1:-1:-1;;;;;;;;;;;17917:44:0;;17982:14;;;17973:23;;-1:-1:-1;;;;;;17973:23:0;-1:-1:-1;;;;;17982:14:0;;;17973:23;;;;;;17705:300::o;30786:172::-;30866:4;30884:42;30894:12;:10;:12::i;:::-;30908:9;30919:6;30884:9;:42::i;37195:176::-;16152:12;:10;:12::i;:::-;16142:6;;-1:-1:-1;;;;;16142:6:0;;;:22;;;16134:67;;;;;-1:-1:-1;;;16134:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16134:67:0;;;;;;;;;;;;;;;37275:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;37275:32:0;::::1;-1:-1:-1::0;;;;37275:32:0;;::::1;::::0;;;::::1;::::0;;;37324:38:::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;37195:176:::0;:::o;36522:162::-;16152:12;:10;:12::i;:::-;16142:6;;-1:-1:-1;;;;;16142:6:0;;;:22;;;16134:67;;;;;-1:-1:-1;;;16134:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16134:67:0;;;;;;;;;;;;;;;36616:60:::1;36660:5;36616:25;27001:20;36628:12:::0;36616:11:::1;:25::i;:::-;:29:::0;::::1;:60::i;:::-;36601:12;:75:::0;-1:-1:-1;36522:162:0:o;27789:84::-;;;-1:-1:-1;;;;;27789:84:0;;:::o;27272:27::-;;;;:::o;17405:221::-;16152:12;:10;:12::i;:::-;16142:6;;-1:-1:-1;;;;;16142:6:0;;;:22;;;16134:67;;;;;-1:-1:-1;;;16134:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16134:67:0;;;;;;;;;;;;;;;17489:6:::1;::::0;;;17472:23;;-1:-1:-1;;;;;;17472:23:0;;::::1;-1:-1:-1::0;;;;;17489:6:0;::::1;17472:23;::::0;;;17507:19:::1;::::0;;17550:3:::1;:10:::0;::::1;17538:9;:22:::0;17577:40:::1;::::0;17489:6;;-1:-1:-1;;;;;;;;;;;17577:40:0;17489:6;;17577:40:::1;17405:221:::0;:::o;30965:147::-;-1:-1:-1;;;;;31076:18:0;;;31048:7;31076:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;30965:147::o;27365:41::-;;;-1:-1:-1;;;;;27365:41:0;;:::o;27672:59::-;;;:::o;27477:28::-;;;;:::o;16892:250::-;16152:12;:10;:12::i;:::-;16142:6;;-1:-1:-1;;;;;16142:6:0;;;:22;;;16134:67;;;;;-1:-1:-1;;;16134:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16134:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;16984:22:0;::::1;16976:73;;;;-1:-1:-1::0;;;16976:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17087:6;::::0;;17066:38:::1;::::0;-1:-1:-1;;;;;17066:38:0;;::::1;::::0;17087:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;17066:38:0;::::1;17116:6;:17:::0;;-1:-1:-1;;;;;;17116:17:0::1;-1:-1:-1::0;;;;;17116:17:0;;;::::1;::::0;;;::::1;::::0;;16892:250::o;27414:48::-;;;-1:-1:-1;;;;;27414:48:0;;:::o;8201:108::-;8290:10;8201:108;:::o;41301:340::-;-1:-1:-1;;;;;41395:19:0;;41387:68;;;;-1:-1:-1;;;41387:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;41475:21:0;;41467:68;;;;-1:-1:-1;;;41467:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;41547:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;41600:32;;;;;;;;;;;;;;;;;41301:340;;;:::o;41648:2422::-;-1:-1:-1;;;;;41775:18:0;;41767:68;;;;-1:-1:-1;;;41767:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;41855:16:0;;41847:64;;;;-1:-1:-1;;;41847:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41940:1;41931:6;:10;41923:64;;;;-1:-1:-1;;;41923:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;42010:7;:5;:7::i;:::-;-1:-1:-1;;;;;42002:15:0;:4;-1:-1:-1;;;;;42002:15:0;;;:32;;;;;42027:7;:5;:7::i;:::-;-1:-1:-1;;;;;42021:13:0;:2;-1:-1:-1;;;;;42021:13:0;;;42002:32;41999:126;;;42068:12;;42058:6;:22;;42050:75;;;;-1:-1:-1;;;42050:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;42509:28;42540:24;42558:4;42540:9;:24::i;:::-;42509:55;;42614:12;;42590:20;:36;42587:115;;-1:-1:-1;42677:12:0;;42587:115;42775:23;;42751:47;;;;;;;42829:54;;-1:-1:-1;42867:16:0;;-1:-1:-1;;;42867:16:0;;;;42866:17;42829:54;:97;;;;;42909:17;-1:-1:-1;;;;;42901:25:0;:4;-1:-1:-1;;;;;42901:25:0;;;42829:97;:136;;;;-1:-1:-1;42944:21:0;;-1:-1:-1;;;42944:21:0;;;;42829:136;42810:325;;;43017:23;;42994:46;;43086:36;43101:20;43086:14;:36::i;:::-;-1:-1:-1;;;;;43349:24:0;;43219:12;43349:24;;;:18;:24;;;;;;43234:4;;43349:24;;;:50;;-1:-1:-1;;;;;;43377:22:0;;;;;;:18;:22;;;;;;;;43349:50;43346:98;;;-1:-1:-1;43426:5:0;43346:98;-1:-1:-1;;;;;43480:28:0;;;;;;:22;:28;;;;;;;;43477:552;;;43523:38;43538:4;43543:2;43546:6;43553:7;43523:14;:38::i;:::-;43477:552;;;43658:26;43687:31;43712:5;43687:20;43698:8;;43687:6;:10;;:20;;;;:::i;:31::-;43658:60;-1:-1:-1;43730:24:0;43758:30;:6;43658:60;43758:10;:30::i;:::-;43835:11;;43730:58;;-1:-1:-1;43815:59:0;;43830:4;;-1:-1:-1;;;;;43835:11:0;43847:18;43866:7;43815:14;:59::i;:::-;43953:48;43968:4;43973:2;43976:16;43993:7;43953:14;:48::i;:::-;43477:552;;;41648:2422;;;;;;:::o;4539:194::-;4625:7;4662:12;4654:6;;;;4646:29;;;;-1:-1:-1;;;4646:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4699:5:0;;;4539:194::o;39261:166::-;39302:7;39324:15;39341;39360:19;:17;:19::i;:::-;39323:56;;-1:-1:-1;39323:56:0;-1:-1:-1;39398:20:0;39323:56;;39398:11;:20::i;:::-;39391:27;;;;39261:166;:::o;5965:134::-;6023:7;6051:39;6055:1;6058;6051:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6044:46;5965:134;-1:-1:-1;;;5965:134:0:o;3614:183::-;3672:7;3705:5;;;3730:6;;;;3722:46;;;;;-1:-1:-1;;;3722:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;38047:423;38106:7;38115;38124;38133;38142;38151;38173:23;38198:12;38212:18;38234:20;38246:7;38234:11;:20::i;:::-;38172:82;;;;;;38267:15;38284:23;38309:12;38325:50;38337:7;38346:4;38352:10;38364;:8;:10::i;:::-;38325:11;:50::i;:::-;38266:109;;;;-1:-1:-1;38266:109:0;;-1:-1:-1;38427:15:0;;-1:-1:-1;38444:4:0;;-1:-1:-1;38450:10:0;;-1:-1:-1;38047:423:0;;-1:-1:-1;;;;;38047:423:0:o;46316:720::-;46428:7;46424:41;;46451:14;:12;:14::i;:::-;-1:-1:-1;;;;;46492:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;46516:22:0;;;;;;:11;:22;;;;;;;;46515:23;46492:46;46488:475;;;46556:48;46578:6;46586:9;46597:6;46556:21;:48::i;:::-;46488:475;;;-1:-1:-1;;;;;46628:19:0;;;;;;:11;:19;;;;;;;;46627:20;:46;;;;-1:-1:-1;;;;;;46651:22:0;;;;;;:11;:22;;;;;;;;46627:46;46623:340;;;46691:46;46711:6;46719:9;46730:6;46691:19;:46::i;46623:340::-;-1:-1:-1;;;;;46760:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;46783:22:0;;;;;;:11;:22;;;;;;;;46760:45;46756:207;;;46823:48;46845:6;46853:9;46864:6;46823:21;:48::i;46756:207::-;46906:44;46924:6;46932:9;46943:6;46906:17;:44::i;:::-;46989:7;46985:42;;47012:15;:13;:15::i;:::-;46316:720;;;;:::o;5001:477::-;5059:7;5308:6;5304:49;;-1:-1:-1;5339:1:0;5332:8;;5304:49;5376:5;;;5380:1;5376;:5;:1;5401:5;;;;;:10;5393:56;;;;-1:-1:-1;;;5393:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;44077:998;29032:16;:23;;-1:-1:-1;;;;29032:23:0;-1:-1:-1;;;29032:23:0;;;;44230:27:::1;:20:::0;44255:1:::1;44230:24;:27::i;:::-;44215:42:::0;-1:-1:-1;44269:17:0::1;44289:30;:20:::0;44215:42;44289:24:::1;:30::i;:::-;44269:50:::0;-1:-1:-1;44625:21:0::1;44691:22;44708:4:::0;44691:16:::1;:22::i;:::-;44844:18;44865:41;:21;44891:14:::0;44865:25:::1;:41::i;:::-;44844:62;;44960:35;44973:9;44984:10;44960:12;:35::i;:::-;45023:43;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;-1:-1:-1::0;;29080:16:0;:24;;-1:-1:-1;;;;29080:24:0;;;-1:-1:-1;;;44077:998:0:o;4089:138::-;4147:7;4175:43;4179:1;4182;4175:43;;;;;;;;;;;;;;;;;:3;:43::i;39434:571::-;39532:7;;39484;;;;27001:20;39484:7;39594:293;39618:9;:16;39614:20;;39594:293;;;39685:7;39661;:21;39669:9;39679:1;39669:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;39669:12:0;39661:21;;;;;;;;;;;;;:31;;:66;;;39720:7;39696;:21;39704:9;39714:1;39704:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;39704:12:0;39696:21;;;;;;;;;;;;;:31;39661:66;39657:97;;;39737:7;;27001:20;39729:25;;;;;;;;;39657:97;39780:34;39792:7;:21;39800:9;39810:1;39800:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;39800:12:0;39792:21;;;;;;;;;;;;;39780:7;;:11;:34::i;:::-;39770:44;;39840:34;39852:7;:21;39860:9;39870:1;39860:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;39860:12:0;39852:21;;;;;;;;;;;;;39840:7;;:11;:34::i;:::-;39830:44;-1:-1:-1;39636:3:0;;39594:293;;;-1:-1:-1;39912:7:0;;:20;;27001;39912:11;:20::i;:::-;39902:7;:30;39898:61;;;39942:7;;27001:20;39934:25;;;;;;;;39898:61;39979:7;;-1:-1:-1;39988:7:0;-1:-1:-1;39434:571:0;;;:::o;6606:281::-;6692:7;6728:12;6721:5;6713:28;;;;-1:-1:-1;;;6713:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6753:9;6769:1;6765;:5;;;;;;;6606:281;-1:-1:-1;;;;;6606:281:0:o;38477:335::-;38537:7;38546;38555;38576:12;38591:24;38607:7;38591:15;:24::i;:::-;38576:39;;38627:18;38648:30;38670:7;38648:21;:30::i;:::-;38627:51;-1:-1:-1;38690:23:0;38716:33;38627:51;38716:17;:7;38728:4;38716:11;:17::i;:::-;:21;;:33::i;:::-;38690:59;38786:4;;-1:-1:-1;38792:10:0;;-1:-1:-1;38477:335:0;;-1:-1:-1;;;38477:335:0:o;38819:435::-;38934:7;;;;38991:24;:7;39003:11;38991;:24::i;:::-;38973:42;-1:-1:-1;39027:12:0;39042:21;:4;39051:11;39042:8;:21::i;:::-;39027:36;-1:-1:-1;39075:18:0;39096:27;:10;39111:11;39096:14;:27::i;:::-;39075:48;-1:-1:-1;39135:23:0;39161:33;39075:48;39161:17;:7;39173:4;39161:11;:17::i;:33::-;39214:7;;;;-1:-1:-1;39240:4:0;;-1:-1:-1;38819:435:0;;-1:-1:-1;;;;;;;38819:435:0:o;40745:264::-;40792:9;;:14;:36;;;;-1:-1:-1;40810:13:0;;:18;40792:36;40789:48;;;40830:7;;40789:48;40877:9;;;40859:15;:27;40922:13;;;40898:21;:37;-1:-1:-1;40958:13:0;;;;40983:17;40745:264::o;48160:574::-;48264:15;48281:23;48306:12;48320:23;48345:12;48359:18;48381:19;48392:7;48381:10;:19::i;:::-;-1:-1:-1;;;;;48430:15:0;;;;;;:7;:15;;;;;;48263:137;;-1:-1:-1;48263:137:0;;-1:-1:-1;48263:137:0;;-1:-1:-1;48263:137:0;-1:-1:-1;48263:137:0;-1:-1:-1;48263:137:0;-1:-1:-1;48430:28:0;;48450:7;48430:19;:28::i;:::-;-1:-1:-1;;;;;48412:15:0;;;;;;:7;:15;;;;;;;;:46;;;;48488:7;:15;;;;:28;;48508:7;48488:19;:28::i;:::-;-1:-1:-1;;;;;48470:15:0;;;;;;;:7;:15;;;;;;:46;;;;48549:18;;;;;;;:39;;48572:15;48549:22;:39::i;:::-;-1:-1:-1;;;;;48528:18:0;;;;;;:7;:18;;;;;:60;48603:26;48618:10;48603:14;:26::i;:::-;48641:23;48653:4;48659;48641:11;:23::i;:::-;48698:9;-1:-1:-1;;;;;48681:44:0;48690:6;-1:-1:-1;;;;;48681:44:0;;48709:15;48681:44;;;;;;;;;;;;;;;;;;48160:574;;;;;;;;;:::o;47559:594::-;47661:15;47678:23;47703:12;47717:23;47742:12;47756:18;47778:19;47789:7;47778:10;:19::i;:::-;-1:-1:-1;;;;;47827:15:0;;;;;;:7;:15;;;;;;47660:137;;-1:-1:-1;47660:137:0;;-1:-1:-1;47660:137:0;;-1:-1:-1;47660:137:0;-1:-1:-1;47660:137:0;-1:-1:-1;47660:137:0;-1:-1:-1;47827:28:0;;47660:137;47827:19;:28::i;:::-;-1:-1:-1;;;;;47809:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;47888:18;;;;;:7;:18;;;;;:39;;47911:15;47888:22;:39::i;:::-;-1:-1:-1;;;;;47867:18:0;;;;;;:7;:18;;;;;;;;:60;;;;47960:7;:18;;;;:39;;47983:15;47960:22;:39::i;33628:651::-;33732:15;33749:23;33774:12;33788:23;33813:12;33827:18;33849:19;33860:7;33849:10;:19::i;:::-;-1:-1:-1;;;;;33898:15:0;;;;;;:7;:15;;;;;;33731:137;;-1:-1:-1;33731:137:0;;-1:-1:-1;33731:137:0;;-1:-1:-1;33731:137:0;-1:-1:-1;33731:137:0;-1:-1:-1;33731:137:0;-1:-1:-1;33898:28:0;;33918:7;33898:19;:28::i;:::-;-1:-1:-1;;;;;33880:15:0;;;;;;:7;:15;;;;;;;;:46;;;;33956:7;:15;;;;:28;;33976:7;33956:19;:28::i;47043:509::-;47143:15;47160:23;47185:12;47199:23;47224:12;47238:18;47260:19;47271:7;47260:10;:19::i;:::-;-1:-1:-1;;;;;47309:15:0;;;;;;:7;:15;;;;;;47142:137;;-1:-1:-1;47142:137:0;;-1:-1:-1;47142:137:0;;-1:-1:-1;47142:137:0;-1:-1:-1;47142:137:0;-1:-1:-1;47142:137:0;-1:-1:-1;47309:28:0;;47142:137;47309:19;:28::i;41023:130::-;41080:15;;41068:9;:27;41123:21;;41107:13;:37;41023:130::o;45082:615::-;45238:16;;;45252:1;45238:16;;;45214:21;45238:16;;;;;45214:21;45238:16;;;;;;;;;;-1:-1:-1;45238:16:0;45214:40;;45284:4;45266;45271:1;45266:7;;;;;;;;;;;;;:23;-1:-1:-1;;;;;45266:23:0;;;-1:-1:-1;;;;;45266:23:0;;;;;45311:19;-1:-1:-1;;;;;45311:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;45311:26:0;45301:7;;:4;;45306:1;;45301:7;;;;;;;;;;;:36;-1:-1:-1;;;;;45301:36:0;;;-1:-1:-1;;;;;45301:36:0;;;;;45349:66;45366:4;45381:19;45403:11;45349:8;:66::i;:::-;45454:19;-1:-1:-1;;;;;45454:70:0;;45540:11;45567:1;45612:4;45640;45661:15;45454:234;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;45454:234:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;45704:531;45854:66;45871:4;45886:19;45908:11;45854:8;:66::i;:::-;45963:19;-1:-1:-1;;;;;45963:35:0;;46006:9;46040:4;46061:11;46088:1;46132;46176:7;:5;:7::i;:::-;46199:15;45963:263;;;;;;;;;;;;;-1:-1:-1;;;;;45963:263:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;45963:263:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40394:160;40458:7;40486:59;40528:5;40486:22;40498:9;;40486:7;:11;;:22;;;;:::i;40561:170::-;40631:7;40659:63;40705:5;40659:26;40671:13;;40659:7;:11;;:26;;;;:::i;40019:361::-;40083:19;40106:10;:8;:10::i;:::-;40083:33;-1:-1:-1;40128:18:0;40149:27;:10;40083:33;40149:14;:27::i;:::-;40229:4;40213:22;;;;:7;:22;;;;;;40128:48;;-1:-1:-1;40213:38:0;;40128:48;40213:26;:38::i;:::-;40204:4;40188:22;;;;:7;:22;;;;;;;;:63;;;;40266:11;:26;;;;;;40263:108;;;40349:4;40333:22;;;;:7;:22;;;;;;:38;;40360:10;40333:26;:38::i;:::-;40324:4;40308:22;;;;:7;:22;;;;;:63;40263:108;40019:361;;;:::o;37890:150::-;37969:7;;:17;;37981:4;37969:11;:17::i;:::-;37959:7;:27;38011:10;;:20;;38026:4;38011:14;:20::i;:::-;37998:10;:33;-1:-1:-1;;37890:150:0:o

Swarm Source

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