Contract 0x7807c55aa1736db8441b95c8c7da060e32abf7ae 2

 

Contract Overview

Balance:
0 BNB

BNB Value:
$0.00

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xab475913ff1bc8cc875f0813aba8255affb494bd52c3ec67ebae85c15c011abaApprove118592282021-10-17 19:20:442 hrs 7 mins ago0x27119aaf79747d6cae588830014a88ad4ffb911e IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000222635
0x080224f12b4d54ed2d890a6913080d469b89bdaaac0a1728b7c1ea3b65580318Approve118582562021-10-17 18:32:012 hrs 56 mins ago0x93a40d7f07d816b56ebda479df08bd3709028f15 IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000222635
0x8061106223758541a6f7785a609838c18b7560241d8579165f4b8fabcf58d1b3Approve118559292021-10-17 16:35:124 hrs 53 mins ago0xba7be9ad3f32598c7eaee61b5d382c958a33c13a IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000222635
0xbd3f65cbfccd5e5a92cf2f2e55a9e295de6fd806dbd110db050b9324e576e6eeSet Total Sell F...118546572021-10-17 15:30:235 hrs 57 mins ago0x95b911a44a3cd1c87956610a3a3810445a776989 IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000137005
0xbb63bb884de6aea23186ca6b188d02078f1f45a3180abe031ae41e6c2664f124Set Total Buy Fe...118546552021-10-17 15:30:175 hrs 58 mins ago0x95b911a44a3cd1c87956610a3a3810445a776989 IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000136895
0xad86bc35fde903b8a7bc3560ae0847482234ddfe161077bdbf4f01561ee42b67Set Total Sell F...118540702021-10-17 15:00:246 hrs 27 mins ago0x95b911a44a3cd1c87956610a3a3810445a776989 IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000137005
0x06f23cab0096a3b3f470d95895382fc785cb4ce229ee7506bcf5997766feb760Set Total Buy Fe...118540672021-10-17 15:00:156 hrs 28 mins ago0x95b911a44a3cd1c87956610a3a3810445a776989 IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000136895
0x77188d9d5d1750a0a17aae8e7ee065ced4616e088b25f039094977c8c84d96fdApprove118518132021-10-17 13:07:048 hrs 21 mins ago0x0d418417a58db46b37418ba5695c6907e2bf34d4 IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000222635
0x62d7c4e4c077940dd071587448f4530634e83b452c3d2a827123e3e55d81202aApprove118477022021-10-17 9:38:2411 hrs 49 mins ago0x93ceb762b8c1399226221f6b1361d48995bb18da IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000222635
0x5d0df8c11ba14b7aaad560829086795de2fcb9a9aa78e528178bb951b1ffda53Approve118451642021-10-17 7:31:3013 hrs 56 mins ago0x06095fc6292bfb7999cec86f93ef9234f6d4acb2 IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000267162
0x660e42945b9c414057ce1b3ea78bf751f0f7403b1ff77e5863f8ad8e6a925fd3Approve118421462021-10-17 5:00:3216 hrs 27 mins ago0x26aeb4b889c40d3152a7279df328c2c3d639842d IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000222635
0xdcf47c5e1a788518fc345a5edf58d5ab6d6e49b21db462e055131572534e08deApprove118398672021-10-17 3:06:3518 hrs 21 mins ago0xdc03829a1e0edc3f37767039bb60b30b8dd5785b IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000222635
0x91289e58895828b7157ebb4c480f40b7a47c6d11e3981a2583ce5410d55b5306Approve118345382021-10-16 22:39:5622 hrs 48 mins ago0xea4f98a8a98b536f5ddf1780d4225e444a3ec4b9 IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000311689
0x6ab2551094e57f472a570b5ce0a2c90036ace2daddda82a74dca944c2ad75e43Approve118345322021-10-16 22:39:3822 hrs 48 mins ago0x9ecb0e386c2c2cc50f51f717f540bfa94e3c3883 IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000222635
0xf1d1a3ed225992c59c0993f4cedb98a52edaab0d7237b4ac40507db9e891f0d0Set Total Sell F...118313462021-10-16 20:00:201 day 1 hr ago0x95b911a44a3cd1c87956610a3a3810445a776989 IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000137005
0xecff9a1af53a95b76e3802c5a8ff206da8de42ca8efdba3adda43cb94ab410eeSet Total Buy Fe...118313442021-10-16 20:00:141 day 1 hr ago0x95b911a44a3cd1c87956610a3a3810445a776989 IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000136895
0xafe1d4eb0bad7e696883f3181a5b55116e24839ea1410229b7c27dd400115bd5Set Total Sell F...118289772021-10-16 18:00:171 day 3 hrs ago0x95b911a44a3cd1c87956610a3a3810445a776989 IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000137005
0x7d79148040679595678500115bbea4265e8c9119fa172564dd4a9494b5707a95Set Total Buy Fe...118289762021-10-16 18:00:141 day 3 hrs ago0x95b911a44a3cd1c87956610a3a3810445a776989 IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000136895
0x348be7f2c18b38829404c6d7bfbb49362151773fe2a3fe067d746ad5683bc555Approve118288022021-10-16 17:50:501 day 3 hrs ago0xfd33ca170fae47866c1b7e6117fc42db3e9953bb IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000222635
0xf133dd54d0b0f3e6495b05c165a3f8278980e601d99dab3f29936aab3667af75Approve118284822021-10-16 17:34:321 day 3 hrs ago0x2a2b7b013e43909965295f978a5f165be663be35 IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000311689
0x755ff13e8897f82c63105c277bbd3b727d0f8f6432777f62e265da8926abfb05Transfer118284372021-10-16 17:32:101 day 3 hrs ago0x8c128dba2cb66399341aa877315be1054be75da8 IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.002490785
0xd6b769d4019911738166c1f9db05009423910447bfe324fe31db754bc1b1db25Approve118284222021-10-16 17:31:201 day 3 hrs ago0x922f8ca1b5a6c744a07b81e73a5e1b8e74dfcb1b IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.00007286
0x4812001498a4c6539e4eb67154324a81fee89868a94463d7e5ef02558a57b566Approve118247082021-10-16 14:23:121 day 7 hrs ago0x2a8ab2b3e8d73c686eb8a8af90433e5e974268c2 IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000222635
0x9447aadf8857686c38f11169a52a5bf982a1ffec51f76a1d8fc63110fe352f35Set Total Sell F...118170872021-10-16 8:00:241 day 13 hrs ago0x95b911a44a3cd1c87956610a3a3810445a776989 IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000137005
0x26efdc8a9a1a16712a07ee1bcc2d5ff266bf1720ca0011f622ae3102d85a1dc8Set Total Buy Fe...118170852021-10-16 8:00:181 day 13 hrs ago0x95b911a44a3cd1c87956610a3a3810445a776989 IN  0x7807c55aa1736db8441b95c8c7da060e32abf7ae0 BNB0.000136895
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x9a36f3a3893dd9c21d5c94287332ce925356ffb283a2bc8cf323015a3336b4af118518212021-10-17 13:07:288 hrs 20 mins ago 0x7807c55aa1736db8441b95c8c7da060e32abf7ae0x4e76fb6ccbd3acb9bb823062645ba89d00c6e10e0.03190394742396472 BNB
0x9a36f3a3893dd9c21d5c94287332ce925356ffb283a2bc8cf323015a3336b4af118518212021-10-17 13:07:288 hrs 20 mins ago 0x7807c55aa1736db8441b95c8c7da060e32abf7ae 0x830f7a104a3df30879d526031d57daa44bf856860.063807894847929436 BNB
0x9a36f3a3893dd9c21d5c94287332ce925356ffb283a2bc8cf323015a3336b4af118518212021-10-17 13:07:288 hrs 20 mins ago 0x7807c55aa1736db8441b95c8c7da060e32abf7ae0x7cf9756223f9f78ec03a897e64aaf6dbfbb33acf0.021152317142088608 BNB
0x9a36f3a3893dd9c21d5c94287332ce925356ffb283a2bc8cf323015a3336b4af118518212021-10-17 13:07:288 hrs 20 mins ago 0x7807c55aa1736db8441b95c8c7da060e32abf7ae0x8058dacf7ff2db8621b1bce26cfd3ac217898f1a0.095839458061590013 BNB
0x9a36f3a3893dd9c21d5c94287332ce925356ffb283a2bc8cf323015a3336b4af118518212021-10-17 13:07:288 hrs 20 mins ago PancakeSwap: Router v2 0x7807c55aa1736db8441b95c8c7da060e32abf7ae0.212703617475572777 BNB
0xc93b033520b759256964153d845fb7d6330b668e779a3c8cc3c4bf625e8703bd118285672021-10-16 17:39:011 day 3 hrs ago 0x7807c55aa1736db8441b95c8c7da060e32abf7ae0x4e76fb6ccbd3acb9bb823062645ba89d00c6e10e0.028225169682607236 BNB
0xc93b033520b759256964153d845fb7d6330b668e779a3c8cc3c4bf625e8703bd118285672021-10-16 17:39:011 day 3 hrs ago 0x7807c55aa1736db8441b95c8c7da060e32abf7ae 0x830f7a104a3df30879d526031d57daa44bf856860.084675509047821706 BNB
0xc93b033520b759256964153d845fb7d6330b668e779a3c8cc3c4bf625e8703bd118285672021-10-16 17:39:011 day 3 hrs ago 0x7807c55aa1736db8441b95c8c7da060e32abf7ae0x7cf9756223f9f78ec03a897e64aaf6dbfbb33acf0.018713287499568597 BNB
0xc93b033520b759256964153d845fb7d6330b668e779a3c8cc3c4bf625e8703bd118285672021-10-16 17:39:011 day 3 hrs ago 0x7807c55aa1736db8441b95c8c7da060e32abf7ae0x8058dacf7ff2db8621b1bce26cfd3ac217898f1a0.084788409726552135 BNB
0xc93b033520b759256964153d845fb7d6330b668e779a3c8cc3c4bf625e8703bd118285672021-10-16 17:39:011 day 3 hrs ago PancakeSwap: Router v2 0x7807c55aa1736db8441b95c8c7da060e32abf7ae0.216402375956549674 BNB
0x24f8e3e69967ecad6548caeb18b697d517706c2bdb2744bc9482e14a1bd635dc118006492021-10-15 18:15:212 days 3 hrs ago 0x7807c55aa1736db8441b95c8c7da060e32abf7ae0x4e76fb6ccbd3acb9bb823062645ba89d00c6e10e0.028944307636493512 BNB
0x24f8e3e69967ecad6548caeb18b697d517706c2bdb2744bc9482e14a1bd635dc118006492021-10-15 18:15:212 days 3 hrs ago 0x7807c55aa1736db8441b95c8c7da060e32abf7ae 0x830f7a104a3df30879d526031d57daa44bf856860.086832922909480529 BNB
0x24f8e3e69967ecad6548caeb18b697d517706c2bdb2744bc9482e14a1bd635dc118006492021-10-15 18:15:212 days 3 hrs ago 0x7807c55aa1736db8441b95c8c7da060e32abf7ae0x7cf9756223f9f78ec03a897e64aaf6dbfbb33acf0.019190075962995197 BNB
0x24f8e3e69967ecad6548caeb18b697d517706c2bdb2744bc9482e14a1bd635dc118006492021-10-15 18:15:212 days 3 hrs ago 0x7807c55aa1736db8441b95c8c7da060e32abf7ae0x8058dacf7ff2db8621b1bce26cfd3ac217898f1a0.086948700140026503 BNB
0x24f8e3e69967ecad6548caeb18b697d517706c2bdb2744bc9482e14a1bd635dc118006492021-10-15 18:15:212 days 3 hrs ago PancakeSwap: Router v2 0x7807c55aa1736db8441b95c8c7da060e32abf7ae0.221916006648995741 BNB
0x2c98c8ebc682bac9dcbf713d2fa6a628f6ff851e13322deb8750eab5f6550590117960162021-10-15 14:23:302 days 7 hrs ago 0x7807c55aa1736db8441b95c8c7da060e32abf7ae0x4e76fb6ccbd3acb9bb823062645ba89d00c6e10e0.033671627067678715 BNB
0x2c98c8ebc682bac9dcbf713d2fa6a628f6ff851e13322deb8750eab5f6550590117960162021-10-15 14:23:302 days 7 hrs ago 0x7807c55aa1736db8441b95c8c7da060e32abf7ae 0x830f7a104a3df30879d526031d57daa44bf856860.067343254135357426 BNB
0x2c98c8ebc682bac9dcbf713d2fa6a628f6ff851e13322deb8750eab5f6550590117960162021-10-15 14:23:302 days 7 hrs ago 0x7807c55aa1736db8441b95c8c7da060e32abf7ae0x7cf9756223f9f78ec03a897e64aaf6dbfbb33acf0.022324288745870986 BNB
0x2c98c8ebc682bac9dcbf713d2fa6a628f6ff851e13322deb8750eab5f6550590117960162021-10-15 14:23:302 days 7 hrs ago 0x7807c55aa1736db8441b95c8c7da060e32abf7ae0x8058dacf7ff2db8621b1bce26cfd3ac217898f1a0.101149567711306854 BNB
0x2c98c8ebc682bac9dcbf713d2fa6a628f6ff851e13322deb8750eab5f6550590117960162021-10-15 14:23:302 days 7 hrs ago PancakeSwap: Router v2 0x7807c55aa1736db8441b95c8c7da060e32abf7ae0.224488737660213981 BNB
0x817355f7005aa1fa1217518f06e94c203d46722ae18ce8ea479ebd2ca6d86a29117726072021-10-14 18:50:383 days 2 hrs ago 0x7807c55aa1736db8441b95c8c7da060e32abf7ae0x4e76fb6ccbd3acb9bb823062645ba89d00c6e10e0.034503477184130806 BNB
0x817355f7005aa1fa1217518f06e94c203d46722ae18ce8ea479ebd2ca6d86a29117726072021-10-14 18:50:383 days 2 hrs ago 0x7807c55aa1736db8441b95c8c7da060e32abf7ae 0x830f7a104a3df30879d526031d57daa44bf856860.06900695436826161 BNB
0x817355f7005aa1fa1217518f06e94c203d46722ae18ce8ea479ebd2ca6d86a29117726072021-10-14 18:50:383 days 2 hrs ago 0x7807c55aa1736db8441b95c8c7da060e32abf7ae0x7cf9756223f9f78ec03a897e64aaf6dbfbb33acf0.022875805373078723 BNB
0x817355f7005aa1fa1217518f06e94c203d46722ae18ce8ea479ebd2ca6d86a29117726072021-10-14 18:50:383 days 2 hrs ago 0x7807c55aa1736db8441b95c8c7da060e32abf7ae0x8058dacf7ff2db8621b1bce26cfd3ac217898f1a0.103648445461128938 BNB
0x817355f7005aa1fa1217518f06e94c203d46722ae18ce8ea479ebd2ca6d86a29117726072021-10-14 18:50:383 days 2 hrs ago PancakeSwap: Router v2 0x7807c55aa1736db8441b95c8c7da060e32abf7ae0.230034682386600077 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BabySafeMoon

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity Multiple files format)

File 1 of 7: BSFM.sol
pragma solidity ^0.8.0;

import "./Address.sol";
import "./Context.sol";
import "./Ownable.sol";
import "./IERC20.sol";
import "./IFactory.sol";
import "./IRouter.sol";

/**
 * $BSFM
 *
 * BabySafeMoon stands for transparent, high-quality and healthy financial plans
 * and collaboration. Integrity, transparency, and trust are what BSFM stands by.
 *
 * - Goal -> Reach a dollar with financially literate plans inspired by stock market economics.
 *
 * Community-driven token with multi-sigs for representatives across multiple projects and
 * most importantly, __The Community__.
 *
 * @dev (audit and anti-rug community) please check and verify the code to put the investors,
 * the community, and our astronauts. We want to ensure the highest standards only.
 *
 * @dev License should be: SPDX
 *
 * Off-chain Mechanics: Cruise Control (Dynamic Tax Protocol: V2)
 *
 * Please see whitepaper for the full picture (could require final updates before launch
 * to match the code due to rapid improvements, should match atleast 90%. If mismatches occur,
 * we will update them accordingly, please provide constructive feedback :thumbsup:).
 *
 * Gitbook Whitepaper: https://baby-safemoon.gitbook.io/babysafemoon/
 *
 *                    -- Godspeed --
 */

contract BabySafeMoon is Context, Ownable, IERC20 {
    using Address for address;
    using Address for address payable;
    
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    mapping(address => uint256) private _firstSell;
    mapping(address => uint256) private _totSells;
    
    mapping(address => bool) private _isBadActor;


    mapping (address => bool) private _isExcludedFromFee;


    mapping (address => bool) private _isExcluded;
    address[] private _excluded;
   
    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal = 100000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;


    string private _name = "BabySafeMoon";
    string private _symbol = "BSFM";
    uint8 private _decimals = 9;

    struct feeRatesStruct {
      uint256 taxFee;
      uint256 devFee;
      uint256 marketingFee;
      uint256 giveawaysFee;
      uint256 iBNBPoolFee;
      uint256 swapFee;
      uint256 totFees;
    }
    
    feeRatesStruct public buyFees = feeRatesStruct(
     {taxFee: 5000,
      devFee: 1337,
      marketingFee: 1000,
      giveawaysFee: 663,
      iBNBPoolFee: 2000,
      swapFee: 5000, // devFee+marketingFee+giveawaysFee+iBNBPoolFee
      totFees: 15
    });

    feeRatesStruct public sellFees = feeRatesStruct(
     {taxFee: 5000,
      devFee: 1337,
      marketingFee: 1000,
      giveawaysFee: 663,
      iBNBPoolFee: 2000,
      swapFee: 5000, // devFee+marketingFee+giveawaysFee+iBNBPoolFee
      totFees: 15
    });

    feeRatesStruct private appliedFees = buyFees; //default value
    feeRatesStruct private previousFees;

    struct antiwhale {
      uint256 selling_threshold;//this is value/1000 %
      uint256 extra_tax; //this is value %
    }

    antiwhale[3] public antiwhale_measures;

    struct valuesFromGetValues{
      uint256 rAmount;
      uint256 rTransferAmount;
      uint256 rFee;
      uint256 rSwap;
      uint256 tTransferAmount;
      uint256 tFee;
      uint256 tSwap;
    }

    
    uint256 public maxSellPerDay = _tTotal/1000;
    
    address payable public marketingWallet = payable(0x76FdF77F062A85eFd9AFc166A0f47c6CAf21F65B);
    address payable public devWallet = payable(0xd87F855A3F595cEAe2e5DA7CB51998b4Be90Ba35);
    address payable public giveawaysWallet = payable(0x6897f1bf2B854E7c0d3E3B7c757120Ef9A036BC0);
    address payable public iBNBPool = payable(0x830F7A104a3dF30879D526031D57DAa44BF85686);

    IRouter public pancakeRouter;
    address public pancakePair;
    
    bool inSwap;
    bool public swapEnabled = true;
    uint256 private minTokensToSwap = 50000 * 10**9;
    uint256 public maxTxAmount = _tTotal/100;


    event swapEnabledUpdated(bool enabled);
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    constructor () {
        _rOwned[_msgSender()] = _rTotal;
        _tOwned[_msgSender()] = _tTotal;
        

        IRouter _pancakeRouter = IRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E);
         // Create a uniswap pair for this new token
        pancakePair = IFactory(_pancakeRouter.factory())
            .createPair(address(this), _pancakeRouter.WETH());

        // set the rest of the contract variables
        pancakeRouter = _pancakeRouter;

        //exclude owner and this contract from fee
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[marketingWallet] = true;
        _isExcludedFromFee[devWallet] = true;
        _isExcludedFromFee[giveawaysWallet] = true;
        _isExcludedFromFee[iBNBPool] = true;
        _isExcludedFromFee[address(this)] = true;
        
        /* will be excluded after the airdrop
        _isExcluded[owner()] = true;
        _isExcluded[marketingWallet] = true;
        _isExcluded[devWallet] = true;
        _isExcluded[giveawaysWallet] = true;
        _isExcluded[iBNBPool] = true;
        _isExcluded[0x000000000000000000000000000000000000dEaD] = true;

        _excluded.push(owner());
        _excluded.push(marketingWallet);
        _excluded.push(devWallet);
        _excluded.push(giveawaysWallet);
        _excluded.push(iBNBPool);
        _excluded.push(0x000000000000000000000000000000000000dEaD); */

        antiwhale_measures[0] = antiwhale({selling_threshold: _tTotal*25/100000, extra_tax: 1});//0.025% of initial supply
        antiwhale_measures[1] = antiwhale({selling_threshold: _tTotal*50/100000, extra_tax: 2});//0.05% of initial supply
        antiwhale_measures[2] = antiwhale({selling_threshold: _tTotal*75/100000, extra_tax: 3});//0.075% of initial supply

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public view returns (string memory) {
        return _name;
    }


    function symbol() public view returns (string memory) {
        return _symbol;
    }


    function decimals() public view returns (uint8) {
        return _decimals;
    }


    function totalSupply() public 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) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }


    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }


    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }


    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }


    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender]+addedValue);
        return true;
    }


    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }


    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }


    function totalFeesCharged() public view returns (uint256) {
        return _tFeeTotal;
    }


    function deliver(uint256 tAmount) public {
        address sender = _msgSender();
        require(!_isExcluded[sender], "Excluded addresses cannot call this function");
        valuesFromGetValues memory s = _getValues(tAmount, false);
        _rOwned[sender] -= s.rAmount;
        _rTotal -= s.rAmount;
        _tFeeTotal += tAmount;
    }


    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) external view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            valuesFromGetValues memory s = _getValues(tAmount, false);
            return s.rAmount;
        } else {
            valuesFromGetValues memory s = _getValues(tAmount, true);
            return s.rTransferAmount;
        }
    }


    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount/currentRate;
    }


    function excludeFromReward(address account) public onlyOwner() {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function excludeFromReward(address[] memory accounts) public onlyOwner() {
        uint256 length = accounts.length;
        for(uint256 i=0;i<length;i++)
        {
        require(!_isExcluded[accounts[i]], "Account is already excluded");
        if(_rOwned[accounts[i]] > 0) {
            _tOwned[accounts[i]] = tokenFromReflection(_rOwned[accounts[i]]);
        }
        _isExcluded[accounts[i]] = true;
        _excluded.push(accounts[i]);
        }
    }


    function includeInReward(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is already 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;
            }
        }
    }
    
    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }
    
    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }
    
     //to recieve ETH from pancakeRouter when swaping
    receive() external payable {}


     function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal     = _rTotal-rFee;
        _tFeeTotal  = _tFeeTotal+tFee;
    }


    function _getValues(uint256 tAmount, bool takeFee) private view returns (valuesFromGetValues memory to_return) {
        to_return = _getTValues(tAmount, takeFee);
        (to_return.rAmount, to_return.rTransferAmount, to_return.rFee, to_return.rSwap) = _getRValues(to_return,tAmount, takeFee, _getRate());
        return to_return;
    }


    function _getTValues(uint256 tAmount, bool takeFee) private view returns (valuesFromGetValues memory s) {
        if(!takeFee) {
          s.tTransferAmount = tAmount;
          return s;
        }
        s.tFee = tAmount*appliedFees.totFees*appliedFees.taxFee/1000000;
        s.tSwap = tAmount*appliedFees.totFees*appliedFees.swapFee/1000000;
        s.tTransferAmount = tAmount-s.tFee-s.tSwap;
        return s;
    }


    function _getRValues(valuesFromGetValues memory s, uint256 tAmount, bool takeFee, uint256 currentRate) private pure returns (uint256, uint256, uint256, uint256) {
        uint256 rAmount = tAmount*currentRate;
        if(!takeFee)
        {
            return (rAmount,rAmount,0,0);
        }
        uint256 rFee = s.tFee*currentRate;
        uint256 rSwap = s.tSwap*currentRate;
        uint256 rTransferAmount = rAmount-rFee-rSwap;
        return (rAmount, rTransferAmount, rFee, rSwap);
    }


    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply/tSupply;
    }


    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        uint256 length = _excluded.length;    
        for (uint256 i = 0; i < length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply -=_rOwned[_excluded[i]];
            tSupply -=_tOwned[_excluded[i]];
        }
        if (rSupply < _rTotal/_tTotal) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
    
    function _takeSwapFees(uint256 rSwap, uint256 tSwap) private {

        _rOwned[address(this)] +=rSwap;
        if(_isExcluded[address(this)])
            _tOwned[address(this)] +=tSwap;
    }
    
    
            //////////////////////////
           /// Setters functions  ///
          //////////////////////////
        
   function setMarketingWallet(address payable _address) external onlyOwner returns (bool){
        marketingWallet = _address;
        _isExcludedFromFee[marketingWallet] = true;
        return true;
    }
    function setDevWallet(address payable _address) external onlyOwner returns (bool){
        devWallet = _address;
        _isExcludedFromFee[devWallet] = true;
        return true;
    }
    function setGiveawaysWallet(address payable _address) external onlyOwner returns (bool){
        giveawaysWallet = _address;
        _isExcludedFromFee[giveawaysWallet] = true;
        return true;
    }
    function setIBNBPool(address payable _address) external onlyOwner returns (bool){
        iBNBPool = _address;
        _isExcludedFromFee[iBNBPool] = true;
        return true;
    }
    
    function setBuyFees(uint256 taxFee, uint256 devFee, uint256 marketingFee, uint256 giveawaysFee, uint256 iBNBPoolFee) external onlyOwner{
        buyFees.taxFee = taxFee;
        buyFees.devFee = devFee;
        buyFees.marketingFee = marketingFee;
        buyFees.giveawaysFee = giveawaysFee;
        buyFees.iBNBPoolFee = iBNBPoolFee;
        buyFees.swapFee = devFee+marketingFee+giveawaysFee+iBNBPoolFee;
        require(buyFees.swapFee+buyFees.taxFee == 10000, "sum of all percentages should be 10000");
    }
    
    function setSellFees(uint256 sellTaxFee, uint256 sellDevFee, uint256 sellMarketingFee, uint256 sellGiveawaysFee, uint256 sellIBNBPoolFee) external onlyOwner{
        sellFees.taxFee = sellTaxFee;
        sellFees.devFee = sellDevFee;
        sellFees.marketingFee = sellMarketingFee;
        sellFees.giveawaysFee = sellGiveawaysFee;
        sellFees.iBNBPoolFee = sellIBNBPoolFee;
        sellFees.swapFee = sellDevFee+sellMarketingFee+sellGiveawaysFee+sellIBNBPoolFee;
        require(sellFees.swapFee+sellFees.taxFee == 10000, "sum of all percentages should be 10000");
    }
    
    function setTotalBuyFees(uint256 _totFees) external onlyOwner{
        buyFees.totFees = _totFees;
    }
    
    function setTotalSellFees(uint256 _totSellFees) external onlyOwner{
        sellFees.totFees = _totSellFees;
    }
    
    function setMaxSellAmountPerDay(uint256 amount) external onlyOwner{
        maxSellPerDay = amount * 10**9;
    }
    
    function setAntiwhaleMeasure(uint256[3] memory selling_thresholds, uint256[3] memory extra_taxes ) external onlyOwner{
        //values of selling_threshold (are values in input)/1000 % of total supply , extra taxes are expressed in %
        antiwhale_measures[0] = antiwhale({selling_threshold: _tTotal*selling_thresholds[0]/100000 , extra_tax: extra_taxes[0]});
        antiwhale_measures[1] = antiwhale({selling_threshold: _tTotal*selling_thresholds[1]/100000 , extra_tax: extra_taxes[1]});
        antiwhale_measures[2] = antiwhale({selling_threshold: _tTotal*selling_thresholds[2]/100000 , extra_tax: extra_taxes[2]});
    }

    function setSwapEnabled(bool _enabled) public onlyOwner {
        swapEnabled = _enabled;
        emit swapEnabledUpdated(_enabled);
    }
    
    function setNumTokensTosSwap(uint256 amount) external onlyOwner{
        minTokensToSwap = amount * 10**9;
    }
    
    function setMaxTxAmount(uint256 amount) external onlyOwner{
        maxTxAmount = amount * 10**9;
    }
    
    function isExcludedFromFee(address account) public 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 getAntiwhaleFee(uint256 amount) internal view returns(uint256 sell_tax) {
    
        if(amount < antiwhale_measures[0].selling_threshold) {
          sell_tax=0;
        }
        else if(amount < antiwhale_measures[1].selling_threshold) {
          sell_tax = antiwhale_measures[0].extra_tax;
        }
        else if(amount < antiwhale_measures[2].selling_threshold) {
          sell_tax = antiwhale_measures[1].extra_tax;
        }
        else { sell_tax = antiwhale_measures[2].extra_tax; }

      return sell_tax;
    }

    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");
        require(!_isBadActor[from] && !_isBadActor[to], "Bots are not allowed");
        
        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            require(amount <= maxTxAmount, 'you are exceeding maxTxAmount');
        }
        
        if(!_isExcludedFromFee[from] && to == pancakePair){
            if(block.timestamp < _firstSell[from]+24 * 1 hours){
                require(_totSells[from]+amount <= maxSellPerDay, "You can't sell more than maxSellPerDay");
                _totSells[from] += amount;
            }
            else{
                require(amount <= maxSellPerDay, "You can't sell more than maxSellPerDay");
                _firstSell[from] = block.timestamp;
                _totSells[from] = amount;
            }
                
        }
        
        uint256 contractTokenBalance = balanceOf(address(this));
        
        bool overMinTokenBalance = contractTokenBalance >= minTokensToSwap;
        if (
            overMinTokenBalance &&
            !inSwap &&
            from != pancakePair &&
            swapEnabled
        ) {
            contractTokenBalance = minTokensToSwap;
            swapAndSendToFees(contractTokenBalance);
        }
        
        //indicates if fee should be deducted from transfer
        bool takeFee = true;
        bool isSale = false;
        
        //if any account belongs to _isExcludedFromFee account then remove the fee
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        } else
        {
            if(to == pancakePair){
            isSale = true;
            }
        }
             
        // transfer amount, it will take tax, burn, liquidity fee
        _tokenTransfer(from,to,amount,takeFee, isSale);
    }
    
    function swapAndSendToFees(uint256 tokens) private {
        uint256 initialBalance = address(this).balance;
        swapTokensForBNB(tokens);
        uint256 transferBalance = address(this).balance-initialBalance;
        devWallet.sendValue(transferBalance*appliedFees.devFee/appliedFees.swapFee);
        giveawaysWallet.sendValue(transferBalance*appliedFees.giveawaysFee/appliedFees.swapFee);
        iBNBPool.sendValue(transferBalance*appliedFees.iBNBPoolFee/appliedFees.swapFee);
        marketingWallet.sendValue(address(this).balance);

    }


    function swapTokensForBNB(uint256 tokenAmount) private lockTheSwap {

        // generate the pancakeswap pair path of token -> wbnb
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = pancakeRouter.WETH();

        if(allowance(address(this), address(pancakeRouter)) < tokenAmount) {
          _approve(address(this), address(pancakeRouter), ~uint256(0));
        }

        // make the swap
        pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of BNB
            path,
            address(this),
            block.timestamp
        );
    }


    // this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee, bool isSale) private {
        if(takeFee){
            if(isSale)
            {
            appliedFees = sellFees;
            appliedFees.totFees += getAntiwhaleFee(_totSells[sender]);
            }
            else
            {
            appliedFees = buyFees;
            }
        }
        
        valuesFromGetValues memory s = _getValues(amount, takeFee);

        if (_isExcluded[sender]) {
            _tOwned[sender] -=amount;
        } 
        if (_isExcluded[recipient]) {
            _tOwned[recipient] += s.tTransferAmount;
        }
        _rOwned[sender] -= s.rAmount;
        _rOwned[recipient] +=s.rTransferAmount;
        
        if(takeFee)
            {
             _takeSwapFees(s.rSwap,s.tSwap);
             _reflectFee(s.rFee, s.tFee);
             emit Transfer(sender, address(this), s.tSwap);
            }
        emit Transfer(sender, recipient, s.tTransferAmount);
    }
    
            //////////////////////////
           /// Emergency functions //
          //////////////////////////


    function rescueBNBFromContract() external onlyOwner {
        address payable _owner = payable(msg.sender);
        _owner.transfer(address(this).balance);
    }
    
    function manualSwap() external onlyOwner{
        uint256 tokensToSwap = balanceOf(address(this));
        swapTokensForBNB(tokensToSwap);
    }
    
    function manualSend() external onlyOwner{
        swapAndSendToFees(balanceOf(address(this)));
    }


    // To be used for snipe-bots and bad actors communicated on with the community.
    function badActorDefenseMechanism(address account, bool isBadActor) external onlyOwner{
        _isBadActor[account] = isBadActor;
    }
    
    function checkBadActor(address account) public view returns(bool){
        return _isBadActor[account];
    }
    
    function setRouterAddress(address newRouter) external onlyOwner {
        require(address(pancakeRouter) != newRouter, 'Router already set');
        //give the option to change the router down the line 
        IRouter _newRouter = IRouter(newRouter);
        address get_pair = IFactory(_newRouter.factory()).getPair(address(this), _newRouter.WETH());
        //checks if pair already exists
        if (get_pair == address(0)) {
            pancakePair = IFactory(_newRouter.factory()).createPair(address(this), _newRouter.WETH());
        }
        else {
            pancakePair = get_pair;
        }
        pancakeRouter = _newRouter;
    }
    
}

File 2 of 7: Address.sol
pragma solidity ^0.8.0;

library Address {

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

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

}

File 3 of 7: Context.sol
pragma solidity ^0.8.0;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }


    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

File 4 of 7: IERC20.sol
pragma solidity ^0.8.0;
interface IERC20 {


    function totalSupply() external view returns (uint256);


    function balanceOf(address account) external view returns (uint256);


    function transfer(address recipient, uint256 amount) external returns (bool);


    function allowance(address owner, address spender) external view returns (uint256);


    function approve(address spender, uint256 amount) external returns (bool);


    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);


    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 5 of 7: IFactory.sol
pragma solidity ^0.8.0;

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

File 6 of 7: IRouter.sol
pragma solidity ^0.8.0;
interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}

File 7 of 7: Ownable.sol
pragma solidity ^0.8.0;

import "./Context.sol";

/**
 * @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.
 */

abstract contract Ownable is Context {
    address private _owner;


    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


    constructor() {
        _setOwner(_msgSender());
    }


    function owner() public view virtual returns (address) {
        return _owner;
    }


    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }


    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }


    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }


    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"swapEnabledUpdated","type":"event"},{"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":"uint256","name":"","type":"uint256"}],"name":"antiwhale_measures","outputs":[{"internalType":"uint256","name":"selling_threshold","type":"uint256"},{"internalType":"uint256","name":"extra_tax","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"},{"internalType":"bool","name":"isBadActor","type":"bool"}],"name":"badActorDefenseMechanism","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFees","outputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"giveawaysFee","type":"uint256"},{"internalType":"uint256","name":"iBNBPoolFee","type":"uint256"},{"internalType":"uint256","name":"swapFee","type":"uint256"},{"internalType":"uint256","name":"totFees","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"checkBadActor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"giveawaysWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"iBNBPool","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","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":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellPerDay","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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pancakePair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pancakeRouter","outputs":[{"internalType":"contract IRouter","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":[],"name":"rescueBNBFromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFees","outputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"giveawaysFee","type":"uint256"},{"internalType":"uint256","name":"iBNBPoolFee","type":"uint256"},{"internalType":"uint256","name":"swapFee","type":"uint256"},{"internalType":"uint256","name":"totFees","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[3]","name":"selling_thresholds","type":"uint256[3]"},{"internalType":"uint256[3]","name":"extra_taxes","type":"uint256[3]"}],"name":"setAntiwhaleMeasure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"giveawaysFee","type":"uint256"},{"internalType":"uint256","name":"iBNBPoolFee","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"setDevWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"setGiveawaysWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"setIBNBPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"setMarketingWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxSellAmountPerDay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setNumTokensTosSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setRouterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellTaxFee","type":"uint256"},{"internalType":"uint256","name":"sellDevFee","type":"uint256"},{"internalType":"uint256","name":"sellMarketingFee","type":"uint256"},{"internalType":"uint256","name":"sellGiveawaysFee","type":"uint256"},{"internalType":"uint256","name":"sellIBNBPoolFee","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totFees","type":"uint256"}],"name":"setTotalBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totSellFees","type":"uint256"}],"name":"setTotalSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeesCharged","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"},{"stateMutability":"payable","type":"receive"}]

608060405267016345785d8a0000600a8190556200002090600019620007af565b6200002e9060001962000758565b600b5560408051808201909152600c8082526b2130b13ca9b0b332a6b7b7b760a11b60209092019182526200006691600d9162000647565b50604080518082019091526004808252634253464d60e01b60209092019182526200009491600e9162000647565b50600f805460ff191660091781556040805160e0808201835261138880835261053960208085018290526103e885870181905261029760608088018290526107d06080808a0182905260a0808b0189905260c09a8b018d905260108990556011889055601286905560138590556014839055601589905560168d90558b51998a018c52888a528987018890529a890185905291880183905290870181905297860185905294909501879052601783905560188290556019859055601a849055601b869055601c839055601d879055601e839055601f91909155839055602191909155602292909255602391909155602491909155600a546200019791906200071f565b603255603380546001600160a01b03199081167376fdf77f062a85efd9afc166a0f47c6caf21f65b1790915560348054821673d87f855a3f595ceae2e5da7cb51998b4be90ba35179055603580548216736897f1bf2b854e7c0d3e3b7c757120ef9a036bc01790556036805490911673830f7a104a3df30879d526031d57daa44bf856861790556038805460ff60a81b1916600160a81b179055652d79883d2000603955600a546200024c906064906200071f565b603a553480156200025c57600080fd5b506200026833620005f7565b600b5433600090815260016020908152604080832093909355600a54600282529183902091909155815163c45a015560e01b815291517310ed43c718714eb63d5aa57b78b54704e256024e92839263c45a015592600480840193829003018186803b158015620002d757600080fd5b505afa158015620002ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003129190620006ed565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200035b57600080fd5b505afa15801562000370573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003969190620006ed565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620003df57600080fd5b505af1158015620003f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041a9190620006ed565b603880546001600160a01b03199081166001600160a01b039384161790915560378054909116918316919091179055600160076000620004626000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055603354821681526007909352818320805485166001908117909155603454821684528284208054861682179055603554821684528284208054861682179055603654909116835281832080548516821790553083529181902080549093169091179091558051808201909152600a548190620186a0906200051390601962000736565b6200051f91906200071f565b815260016020918201528151602c550151602d5560408051808201909152600a548190620186a0906200055490603262000736565b6200056091906200071f565b815260026020918201528151602e550151602f5560408051808201909152600a548190620186a0906200059590604b62000736565b620005a191906200071f565b81526003602091820152815160305590810151603155600a5460405190815233916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620007f2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054620006559062000772565b90600052602060002090601f016020900481019282620006795760008555620006c4565b82601f106200069457805160ff1916838001178555620006c4565b82800160010185558215620006c4579182015b82811115620006c4578251825591602001919060010190620006a7565b50620006d2929150620006d6565b5090565b5b80821115620006d25760008155600101620006d7565b6000602082840312156200070057600080fd5b81516001600160a01b03811681146200071857600080fd5b9392505050565b600082620007315762000731620007dc565b500490565b6000816000190483118215151615620007535762000753620007c6565b500290565b6000828210156200076d576200076d620007c6565b500390565b600181811c908216806200078757607f821691505b60208210811415620007a957634e487b7160e01b600052602260045260246000fd5b50919050565b600082620007c157620007c1620007dc565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b61371a80620008026000396000f3fe60806040526004361061036f5760003560e01c806375f0a874116101c6578063b36cc9ac116100f7578063e01af92c11610095578063ea2f0b371161006f578063ea2f0b3714610abe578063ec28438a14610ade578063f2fde38b14610afe578063f429389014610b1e57600080fd5b8063e01af92c14610a0b578063e0f3ccf514610a2b578063e4748b9e14610a8f57600080fd5b8063c1cf53c4116100d1578063c1cf53c414610965578063c21ebd0714610985578063c4a21834146109a5578063dd62ed3e146109c557600080fd5b8063b36cc9ac14610910578063b757894014610930578063b8c9d25c1461094557600080fd5b80638ea5220f1161016457806395d89b411161013e57806395d89b411461089b578063a457c2d7146108b0578063a9059cbb146108d0578063ae2c7ef2146108f057600080fd5b80638ea5220f1461083b578063902bb9b21461085b578063952d78661461087b57600080fd5b806388f82020116101a057806388f82020146107ae5780638a339d8e146107e75780638c0b5e22146108075780638da5cb5b1461081d57600080fd5b806375f0a874146107585780637cb544fb1461077857806380dbb2941461078e57600080fd5b80634549b039116102a057806357726e141161023e5780636848a03e116102185780636848a03e146106c95780636ddd17131461070257806370a0823114610723578063715018a61461074357600080fd5b806357726e14146106745780635d098b381461069457806365e1d909146106b457600080fd5b80634a42bd2d1161027a5780634a42bd2d146105d157806351bc3c851461060657806352390c021461061b5780635342acb41461063b57600080fd5b80634549b0391461057157806347a28b7914610591578063480ea450146105b157600080fd5b8063313ce5671161030d5780633bd5d173116102e75780633bd5d173146104d95780633f104c7f146104f957806341cb87fc14610531578063437823ec1461055157600080fd5b8063313ce567146104775780633685d4191461049957806339509351146104b957600080fd5b80631f53ac02116103495780631f53ac02146103f557806321645c851461041557806323b872dd146104375780632d8381191461045757600080fd5b806306fdde031461037b578063095ea7b3146103a657806318160ddd146103d657600080fd5b3661037657005b600080fd5b34801561038757600080fd5b50610390610b33565b60405161039d9190613408565b60405180910390f35b3480156103b257600080fd5b506103c66103c1366004613265565b610bc5565b604051901515815260200161039d565b3480156103e257600080fd5b50600a545b60405190815260200161039d565b34801561040157600080fd5b506103c661041036600461317c565b610bdc565b34801561042157600080fd5b50610435610430366004613391565b610c51565b005b34801561044357600080fd5b506103c66104523660046131ef565b610c8f565b34801561046357600080fd5b506103e7610472366004613391565b610d39565b34801561048357600080fd5b50600f5460405160ff909116815260200161039d565b3480156104a557600080fd5b506104356104b436600461317c565b610dbd565b3480156104c557600080fd5b506103c66104d4366004613265565b610f44565b3480156104e557600080fd5b506104356104f4366004613391565b610f80565b34801561050557600080fd5b50603554610519906001600160a01b031681565b6040516001600160a01b03909116815260200161039d565b34801561053d57600080fd5b5061043561054c36600461317c565b61106a565b34801561055d57600080fd5b5061043561056c36600461317c565b611443565b34801561057d57600080fd5b506103e761058c3660046133aa565b611491565b34801561059d57600080fd5b506104356105ac3660046133cd565b61151b565b3480156105bd57600080fd5b506103c66105cc36600461317c565b6115f5565b3480156105dd57600080fd5b506105f16105ec366004613391565b61165f565b6040805192835260208301919091520161039d565b34801561061257600080fd5b50610435611681565b34801561062757600080fd5b5061043561063636600461317c565b6116c4565b34801561064757600080fd5b506103c661065636600461317c565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561068057600080fd5b5061043561068f366004613230565b6117e7565b3480156106a057600080fd5b506103c66106af36600461317c565b61183c565b3480156106c057600080fd5b506104356118a6565b3480156106d557600080fd5b506103c66106e436600461317c565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561070e57600080fd5b506038546103c690600160a81b900460ff1681565b34801561072f57600080fd5b506103e761073e36600461317c565b6118fe565b34801561074f57600080fd5b5061043561195d565b34801561076457600080fd5b50603354610519906001600160a01b031681565b34801561078457600080fd5b506103e760325481565b34801561079a57600080fd5b50603654610519906001600160a01b031681565b3480156107ba57600080fd5b506103c66107c936600461317c565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156107f357600080fd5b50610435610802366004613291565b611993565b34801561081357600080fd5b506103e7603a5481565b34801561082957600080fd5b506000546001600160a01b0316610519565b34801561084757600080fd5b50603454610519906001600160a01b031681565b34801561086757600080fd5b506103c661087636600461317c565b611bb2565b34801561088757600080fd5b50610435610896366004613391565b611c1c565b3480156108a757600080fd5b50610390611c5a565b3480156108bc57600080fd5b506103c66108cb366004613265565b611c69565b3480156108dc57600080fd5b506103c66108eb366004613265565b611d02565b3480156108fc57600080fd5b5061043561090b366004613391565b611d0f565b34801561091c57600080fd5b5061043561092b36600461334a565b611d3e565b34801561093c57600080fd5b50600c546103e7565b34801561095157600080fd5b50603854610519906001600160a01b031681565b34801561097157600080fd5b506104356109803660046133cd565b611e33565b34801561099157600080fd5b50603754610519906001600160a01b031681565b3480156109b157600080fd5b506104356109c0366004613391565b611ea7565b3480156109d157600080fd5b506103e76109e03660046131b6565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b348015610a1757600080fd5b50610435610a26366004613376565b611ed6565b348015610a3757600080fd5b50601754601854601954601a54601b54601c54601d54610a5a9695949392919087565b604080519788526020880196909652948601939093526060850191909152608084015260a083015260c082015260e00161039d565b348015610a9b57600080fd5b50601054601154601254601354601454601554601654610a5a9695949392919087565b348015610aca57600080fd5b50610435610ad936600461317c565b611f58565b348015610aea57600080fd5b50610435610af9366004613391565b611fa3565b348015610b0a57600080fd5b50610435610b1936600461317c565b611fe1565b348015610b2a57600080fd5b50610435612079565b6060600d8054610b4290613621565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6e90613621565b8015610bbb5780601f10610b9057610100808354040283529160200191610bbb565b820191906000526020600020905b815481529060010190602001808311610b9e57829003601f168201915b5050505050905090565b6000610bd23384846120b4565b5060015b92915050565b600080546001600160a01b03163314610c105760405162461bcd60e51b8152600401610c07906134da565b60405180910390fd5b50603480546001600160a01b0319166001600160a01b0383169081179091556000908152600760205260409020805460ff191660019081179091555b919050565b6000546001600160a01b03163314610c7b5760405162461bcd60e51b8152600401610c07906134da565b610c8981633b9aca006135eb565b60395550565b6000610c9c8484846121d8565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610d215760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610c07565b610d2e85338584036120b4565b506001949350505050565b6000600b54821115610da05760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610c07565b6000610daa612638565b9050610db681846135c9565b9392505050565b6000546001600160a01b03163314610de75760405162461bcd60e51b8152600401610c07906134da565b6001600160a01b03811660009081526008602052604090205460ff16610e1f5760405162461bcd60e51b8152600401610c079061345d565b60005b600954811015610f4057816001600160a01b031660098281548110610e4957610e496136a3565b6000918252602090912001546001600160a01b03161415610f2e5760098054610e749060019061360a565b81548110610e8457610e846136a3565b600091825260209091200154600980546001600160a01b039092169183908110610eb057610eb06136a3565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600890925220805460ff191690556009805480610f0857610f0861368d565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610f388161365c565b915050610e22565b5050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610bd2918590610f7b9086906135b1565b6120b4565b3360008181526008602052604090205460ff1615610ff55760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610c07565b600061100283600061265b565b80516001600160a01b03841660009081526001602052604081208054939450919261102e90849061360a565b90915550508051600b805460009061104790849061360a565b9250508190555082600c600082825461106091906135b1565b9091555050505050565b6000546001600160a01b031633146110945760405162461bcd60e51b8152600401610c07906134da565b6037546001600160a01b03828116911614156110e75760405162461bcd60e51b8152602060048201526012602482015271149bdd5d195c88185b1c9958591e481cd95d60721b6044820152606401610c07565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561112757600080fd5b505afa15801561113b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115f9190613199565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156111a757600080fd5b505afa1580156111bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111df9190613199565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561122557600080fd5b505afa158015611239573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125d9190613199565b90506001600160a01b03811661140357816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156112a657600080fd5b505afa1580156112ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112de9190613199565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561132657600080fd5b505afa15801561133a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135e9190613199565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156113a657600080fd5b505af11580156113ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113de9190613199565b603880546001600160a01b0319166001600160a01b039290921691909117905561141f565b603880546001600160a01b0319166001600160a01b0383161790555b50603780546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b0316331461146d5760405162461bcd60e51b8152600401610c07906134da565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000600a548311156114e55760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610c07565b816115015760006114f784600061265b565b519150610bd69050565b600061150e84600161265b565b602001519150610bd69050565b6000546001600160a01b031633146115455760405162461bcd60e51b8152600401610c07906134da565b60108590556011849055601283905560138290556014819055808261156a85876135b1565b61157491906135b1565b61157e91906135b1565b601581905560105461158f916135b1565b612710146115ee5760405162461bcd60e51b815260206004820152602660248201527f73756d206f6620616c6c2070657263656e74616765732073686f756c6420626560448201526502031303030360d41b6064820152608401610c07565b5050505050565b600080546001600160a01b031633146116205760405162461bcd60e51b8152600401610c07906134da565b50603580546001600160a01b0319166001600160a01b039290921691821790556000908152600760205260409020805460ff1916600190811790915590565b602c816003811061166f57600080fd5b60020201805460019091015490915082565b6000546001600160a01b031633146116ab5760405162461bcd60e51b8152600401610c07906134da565b60006116b6306118fe565b90506116c1816126d1565b50565b6000546001600160a01b031633146116ee5760405162461bcd60e51b8152600401610c07906134da565b6001600160a01b03811660009081526008602052604090205460ff16156117275760405162461bcd60e51b8152600401610c079061345d565b6001600160a01b03811660009081526001602052604090205415611781576001600160a01b03811660009081526001602052604090205461176790610d39565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6000546001600160a01b031633146118115760405162461bcd60e51b8152600401610c07906134da565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b600080546001600160a01b031633146118675760405162461bcd60e51b8152600401610c07906134da565b50603380546001600160a01b0319166001600160a01b039290921691821790556000908152600760205260409020805460ff1916600190811790915590565b6000546001600160a01b031633146118d05760405162461bcd60e51b8152600401610c07906134da565b604051339081904780156108fc02916000818181858888f19350505050158015610f40573d6000803e3d6000fd5b6001600160a01b03811660009081526008602052604081205460ff161561193b57506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610bd690610d39565b6000546001600160a01b031633146119875760405162461bcd60e51b8152600401610c07906134da565b611991600061288b565b565b6000546001600160a01b031633146119bd5760405162461bcd60e51b8152600401610c07906134da565b805160005b81811015611bad57600860008483815181106119e0576119e06136a3565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1615611a245760405162461bcd60e51b8152600401610c079061345d565b600060016000858481518110611a3c57611a3c6136a3565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020541115611af557611ab260016000858481518110611a8457611a846136a3565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054610d39565b60026000858481518110611ac857611ac86136a3565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055505b600160086000858481518110611b0d57611b0d6136a3565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506009838281518110611b6057611b606136a3565b60209081029190910181015182546001810184556000938452919092200180546001600160a01b0319166001600160a01b0390921691909117905580611ba58161365c565b9150506119c2565b505050565b600080546001600160a01b03163314611bdd5760405162461bcd60e51b8152600401610c07906134da565b50603680546001600160a01b0319166001600160a01b039290921691821790556000908152600760205260409020805460ff1916600190811790915590565b6000546001600160a01b03163314611c465760405162461bcd60e51b8152600401610c07906134da565b611c5481633b9aca006135eb565b60325550565b6060600e8054610b4290613621565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015611ceb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610c07565b611cf833858584036120b4565b5060019392505050565b6000610bd23384846121d8565b6000546001600160a01b03163314611d395760405162461bcd60e51b8152600401610c07906134da565b601d55565b6000546001600160a01b03163314611d685760405162461bcd60e51b8152600401610c07906134da565b604080518082019091528251600a548291620186a091611d8891906135eb565b611d9291906135c9565b815282516020918201528151602c550151602d556040805180820190915280620186a08460016020020151600a54611dca91906135eb565b611dd491906135c9565b8152602083810151918101919091528151602e550151602f5560408051808201825290830151600a548291620186a091611e0e91906135eb565b611e1891906135c9565b81526040909201516020928301528051603055015160315550565b6000546001600160a01b03163314611e5d5760405162461bcd60e51b8152600401610c07906134da565b601785905560188490556019839055601a829055601b8190558082611e8285876135b1565b611e8c91906135b1565b611e9691906135b1565b601c81905560175461158f916135b1565b6000546001600160a01b03163314611ed15760405162461bcd60e51b8152600401610c07906134da565b601655565b6000546001600160a01b03163314611f005760405162461bcd60e51b8152600401610c07906134da565b60388054821515600160a81b0260ff60a81b199091161790556040517f4b2f02f52c63d8e0a67a39776bc2d158740139cfef7438af1666c33a6a29dac390611f4d90831515815260200190565b60405180910390a150565b6000546001600160a01b03163314611f825760405162461bcd60e51b8152600401610c07906134da565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b03163314611fcd5760405162461bcd60e51b8152600401610c07906134da565b611fdb81633b9aca006135eb565b603a5550565b6000546001600160a01b0316331461200b5760405162461bcd60e51b8152600401610c07906134da565b6001600160a01b0381166120705760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c07565b6116c18161288b565b6000546001600160a01b031633146120a35760405162461bcd60e51b8152600401610c07906134da565b6119916120af306118fe565b6128db565b6001600160a01b0383166121165760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c07565b6001600160a01b0382166121775760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c07565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661223c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c07565b6001600160a01b03821661229e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c07565b600081116123005760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610c07565b6001600160a01b03831660009081526006602052604090205460ff1615801561234257506001600160a01b03821660009081526006602052604090205460ff16155b6123855760405162461bcd60e51b8152602060048201526014602482015273109bdd1cc8185c99481b9bdd08185b1b1bddd95960621b6044820152606401610c07565b6001600160a01b03831660009081526007602052604090205460ff161580156123c757506001600160a01b03821660009081526007602052604090205460ff16155b1561241e57603a5481111561241e5760405162461bcd60e51b815260206004820152601d60248201527f796f752061726520657863656564696e67206d61785478416d6f756e740000006044820152606401610c07565b6001600160a01b03831660009081526007602052604090205460ff1615801561245457506038546001600160a01b038381169116145b15612549576001600160a01b03831660009081526004602052604090205461247f90620151806135b1565b4210156124fe576032546001600160a01b0384166000908152600560205260409020546124ad9083906135b1565b11156124cb5760405162461bcd60e51b8152600401610c0790613494565b6001600160a01b038316600090815260056020526040812080548392906124f39084906135b1565b909155506125499050565b6032548111156125205760405162461bcd60e51b8152600401610c0790613494565b6001600160a01b0383166000908152600460209081526040808320429055600590915290208190555b6000612554306118fe565b603954909150811080159081906125755750603854600160a01b900460ff16155b801561258f57506038546001600160a01b03868116911614155b80156125a45750603854600160a81b900460ff165b156125b75760395491506125b7826128db565b6001600160a01b0385166000908152600760205260408120546001919060ff16806125fa57506001600160a01b03861660009081526007602052604090205460ff165b156126085760009150612622565b6038546001600160a01b0387811691161415612622575060015b61262f878787858561299c565b50505050505050565b6000806000612645612c28565b909250905061265481836135c9565b9250505090565b61269b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6126a58383612db1565b90506126ba8184846126b5612638565b612e86565b606085015260408401526020830152815292915050565b6038805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110612719576127196136a3565b6001600160a01b03928316602091820292909201810191909152603754604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561276d57600080fd5b505afa158015612781573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a59190613199565b816001815181106127b8576127b86136a3565b6001600160a01b039283166020918202929092018101919091526037543060009081526003835260408082209290941681529152205482111561280f5760375461280f9030906001600160a01b03166000196120b4565b60375460405163791ac94760e01b81526001600160a01b039091169063791ac9479061284890859060009086903090429060040161350f565b600060405180830381600087803b15801561286257600080fd5b505af1158015612876573d6000803e3d6000fd5b50506038805460ff60a01b1916905550505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b476128e5826126d1565b60006128f1824761360a565b602354601f549192506129249161290890846135eb565b61291291906135c9565b6034546001600160a01b031690612f05565b602354602154612955919061293990846135eb565b61294391906135c9565b6035546001600160a01b031690612f05565b602354602254612986919061296a90846135eb565b61297491906135c9565b6036546001600160a01b031690612f05565b603354611bad906001600160a01b031647612f05565b8115612a3e578015612a1357601754601e55601854601f556019546020908155601a54602155601b54602255601c54602355601d546024556001600160a01b0386166000908152600590915260409020546129f69061301e565b60248054600090612a089084906135b1565b90915550612a3e9050565b601054601e55601154601f556012546020556013546021556014546022556015546023556016546024555b6000612a4a848461265b565b6001600160a01b03871660009081526008602052604090205490915060ff1615612a9c576001600160a01b03861660009081526002602052604081208054869290612a9690849061360a565b90915550505b6001600160a01b03851660009081526008602052604090205460ff1615612af05760808101516001600160a01b03861660009081526002602052604081208054909190612aea9084906135b1565b90915550505b80516001600160a01b03871660009081526001602052604081208054909190612b1a90849061360a565b90915550506020808201516001600160a01b0387166000908152600190925260408220805491929091612b4e9084906135b1565b90915550508215612bcf57612b6b81606001518260c0015161306c565b612b7d81604001518260a001516130d0565b306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c00151604051612bc691815260200190565b60405180910390a35b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360800151604051612c1891815260200190565b60405180910390a3505050505050565b600b54600a5460095460009283929091835b81811015612d7e57836001600060098481548110612c5a57612c5a6136a3565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612cc55750826002600060098481548110612c9e57612c9e6136a3565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15612cdc57600b54600a5495509550505050509091565b6001600060098381548110612cf357612cf36136a3565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612d22908561360a565b93506002600060098381548110612d3b57612d3b6136a3565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612d6a908461360a565b925080612d768161365c565b915050612c3a565b50600a54600b54612d8f91906135c9565b831015612da757600b54600a54945094505050509091565b5090939092509050565b612df16040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b81612e025760808101839052610bd6565b601e54602454620f42409190612e1890866135eb565b612e2291906135eb565b612e2c91906135c9565b60a0820152602354602454620f42409190612e4790866135eb565b612e5191906135eb565b612e5b91906135c9565b60c0820181905260a0820151612e71908561360a565b612e7b919061360a565b608082015292915050565b600080808080612e9686896135eb565b905086612eae57935083925060009150819050612efa565b6000868a60a00151612ec091906135eb565b90506000878b60c00151612ed491906135eb565b9050600081612ee3848661360a565b612eed919061360a565b9397509295509093509150505b945094509450949050565b80471015612f555760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610c07565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612fa2576040519150601f19603f3d011682016040523d82523d6000602084013e612fa7565b606091505b5050905080611bad5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610c07565b602c5460009082101561303357506000919050565b602e5482101561305157602c60005b60020201600101549050919050565b60305482101561306457602c6001613042565b505060315490565b306000908152600160205260408120805484929061308b9084906135b1565b90915550503060009081526008602052604090205460ff1615610f405730600090815260026020526040812080548392906130c79084906135b1565b90915550505050565b81600b546130de919061360a565b600b55600c546130ef9082906135b1565b600c555050565b600082601f83011261310757600080fd5b6040516060810181811067ffffffffffffffff8211171561312a5761312a6136b9565b60405280836060810186101561313f57600080fd5b60005b6003811015613161578135835260209283019290910190600101613142565b509195945050505050565b80358015158114610c4c57600080fd5b60006020828403121561318e57600080fd5b8135610db6816136cf565b6000602082840312156131ab57600080fd5b8151610db6816136cf565b600080604083850312156131c957600080fd5b82356131d4816136cf565b915060208301356131e4816136cf565b809150509250929050565b60008060006060848603121561320457600080fd5b833561320f816136cf565b9250602084013561321f816136cf565b929592945050506040919091013590565b6000806040838503121561324357600080fd5b823561324e816136cf565b915061325c6020840161316c565b90509250929050565b6000806040838503121561327857600080fd5b8235613283816136cf565b946020939093013593505050565b600060208083850312156132a457600080fd5b823567ffffffffffffffff808211156132bc57600080fd5b818501915085601f8301126132d057600080fd5b8135818111156132e2576132e26136b9565b8060051b91506132f3848301613580565b8181528481019084860184860187018a101561330e57600080fd5b600095505b8386101561333d5780359450613328856136cf565b84835260019590950194918601918601613313565b5098975050505050505050565b60008060c0838503121561335d57600080fd5b61336784846130f6565b915061325c84606085016130f6565b60006020828403121561338857600080fd5b610db68261316c565b6000602082840312156133a357600080fd5b5035919050565b600080604083850312156133bd57600080fd5b8235915061325c6020840161316c565b600080600080600060a086880312156133e557600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b8181101561343557858101830151858201604001528201613419565b81811115613447576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604082015260600190565b60208082526026908201527f596f752063616e27742073656c6c206d6f7265207468616e206d617853656c6c60408201526550657244617960d01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561355f5784516001600160a01b03168352938301939183019160010161353a565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156135a9576135a96136b9565b604052919050565b600082198211156135c4576135c4613677565b500190565b6000826135e657634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561360557613605613677565b500290565b60008282101561361c5761361c613677565b500390565b600181811c9082168061363557607f821691505b6020821081141561365657634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561367057613670613677565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146116c157600080fdfea2646970667358221220cf4691d66fe0c5a9f5b4a1bafa19b96dbb014adb3a738cccecaf5da1bcfe1c6f64736f6c63430008070033

Deployed ByteCode Sourcemap

1258:22545:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6040:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6929:158;;;;;;;;;;-1:-1:-1;6929:158:1;;;;;:::i;:::-;;:::i;:::-;;;6705:14:7;;6698:22;6680:41;;6668:2;6653:18;6929:158:1;6540:187:7;6308:93:1;;;;;;;;;;-1:-1:-1;6387:7:1;;6308:93;;;15508:25:7;;;15496:2;15481:18;6308:93:1;15362:177:7;13736:185:1;;;;;;;;;;-1:-1:-1;13736:185:1;;;;;:::i;:::-;;:::i;16582:112::-;;;;;;;;;;-1:-1:-1;16582:112:1;;;;;:::i;:::-;;:::i;:::-;;7094:440;;;;;;;;;;-1:-1:-1;7094:440:1;;;;;:::i;:::-;;:::i;9198:244::-;;;;;;;;;;-1:-1:-1;9198:244:1;;;;;:::i;:::-;;:::i;6220:81::-;;;;;;;;;;-1:-1:-1;6285:9:1;;6220:81;;6285:9;;;;17536:36:7;;17524:2;17509:18;6220:81:1;17394:184:7;10248:468:1;;;;;;;;;;-1:-1:-1;10248:468:1;;;;;:::i;:::-;;:::i;7541:210::-;;;;;;;;;;-1:-1:-1;7541:210:1;;;;;:::i;:::-;;:::i;8394:340::-;;;;;;;;;;-1:-1:-1;8394:340:1;;;;;:::i;:::-;;:::i;3654:92::-;;;;;;;;;;-1:-1:-1;3654:92:1;;;;-1:-1:-1;;;;;3654:92:1;;;;;;-1:-1:-1;;;;;5963:32:7;;;5945:51;;5933:2;5918:18;3654:92:1;5799:203:7;23149:647:1;;;;;;;;;;-1:-1:-1;23149:647:1;;;;;:::i;:::-;;:::i;10726:109::-;;;;;;;;;;-1:-1:-1;10726:109:1;;;;;:::i;:::-;;:::i;8741:450::-;;;;;;;;;;-1:-1:-1;8741:450:1;;;;;:::i;:::-;;:::i;14326:513::-;;;;;;;;;;-1:-1:-1;14326:513:1;;;;;:::i;:::-;;:::i;13926:203::-;;;;;;;;;;-1:-1:-1;13926:203:1;;;;;:::i;:::-;;:::i;3154:38::-;;;;;;;;;;-1:-1:-1;3154:38:1;;;;;:::i;:::-;;:::i;:::-;;;;16703:25:7;;;16759:2;16744:18;;16737:34;;;;16676:18;3154:38:1;16529:248:7;22539:144:1;;;;;;;;;;;;;:::i;9449:326::-;;;;;;;;;;-1:-1:-1;9449:326:1;;;;;:::i;:::-;;:::i;16817:121::-;;;;;;;;;;-1:-1:-1;16817:121:1;;;;;:::i;:::-;-1:-1:-1;;;;;16904:27:1;16881:4;16904:27;;;:18;:27;;;;;;;;;16817:121;22884:136;;;;;;;;;;-1:-1:-1;22884:136:1;;;;;:::i;:::-;;:::i;13528:203::-;;;;;;;;;;-1:-1:-1;13528:203:1;;;;;:::i;:::-;;:::i;22368:161::-;;;;;;;;;;;;;:::i;23030:109::-;;;;;;;;;;-1:-1:-1;23030:109:1;;;;;:::i;:::-;-1:-1:-1;;;;;23112:20:1;23090:4;23112:20;;;:11;:20;;;;;;;;;23030:109;3932:30;;;;;;;;;;-1:-1:-1;3932:30:1;;;;-1:-1:-1;;;3932:30:1;;;;;;6408:195;;;;;;;;;;-1:-1:-1;6408:195:1;;;;;:::i;:::-;;:::i;987:92:6:-;;;;;;;;;;;;;:::i;3464::1:-;;;;;;;;;;-1:-1:-1;3464:92:1;;;;-1:-1:-1;;;;;3464:92:1;;;3410:43;;;;;;;;;;;;;;;;3752:85;;;;;;;;;;-1:-1:-1;3752:85:1;;;;-1:-1:-1;;;;;3752:85:1;;;8170:118;;;;;;;;;;-1:-1:-1;8170:118:1;;;;;:::i;:::-;-1:-1:-1;;;;;8261:20:1;8238:4;8261:20;;;:11;:20;;;;;;;;;8170:118;9781:460;;;;;;;;;;-1:-1:-1;9781:460:1;;;;;:::i;:::-;;:::i;4021:40::-;;;;;;;;;;;;;;;;771:85:6;;;;;;;;;;-1:-1:-1;817:7:6;843:6;-1:-1:-1;;;;;843:6:6;771:85;;3562:86:1;;;;;;;;;;-1:-1:-1;3562:86:1;;;;-1:-1:-1;;;;;3562:86:1;;;14134:182;;;;;;;;;;-1:-1:-1;14134:182:1;;;;;:::i;:::-;;:::i;15675:113::-;;;;;;;;;;-1:-1:-1;15675:113:1;;;;;:::i;:::-;;:::i;6128:85::-;;;;;;;;;;;;;:::i;7758:405::-;;;;;;;;;;-1:-1:-1;7758:405:1;;;;;:::i;:::-;;:::i;6610:164::-;;;;;;;;;;-1:-1:-1;6610:164:1;;;;;:::i;:::-;;:::i;15551:114::-;;;;;;;;;;-1:-1:-1;15551:114:1;;;;;:::i;:::-;;:::i;15798:630::-;;;;;;;;;;-1:-1:-1;15798:630:1;;;;;:::i;:::-;;:::i;8295:92::-;;;;;;;;;;-1:-1:-1;8370:10:1;;8295:92;;3878:26;;;;;;;;;;-1:-1:-1;3878:26:1;;;;-1:-1:-1;;;;;3878:26:1;;;14849:578;;;;;;;;;;-1:-1:-1;14849:578:1;;;;;:::i;:::-;;:::i;3844:28::-;;;;;;;;;;-1:-1:-1;3844:28:1;;;;-1:-1:-1;;;;;3844:28:1;;;15437:104;;;;;;;;;;-1:-1:-1;15437:104:1;;;;;:::i;:::-;;:::i;6781:141::-;;;;;;;;;;-1:-1:-1;6781:141:1;;;;;:::i;:::-;-1:-1:-1;;;;;6888:18:1;;;6862:7;6888:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6781:141;16434:138;;;;;;;;;;-1:-1:-1;16434:138:1;;;;;:::i;:::-;;:::i;2653:258::-;;;;;;;;;;-1:-1:-1;2653:258:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;17097:25:7;;;17153:2;17138:18;;17131:34;;;;17181:18;;;17174:34;;;;17239:2;17224:18;;17217:34;;;;17282:3;17267:19;;17260:35;17326:3;17311:19;;17304:35;17370:3;17355:19;;17348:35;17084:3;17069:19;2653:258:1;16782:607:7;2389:257:1;;;;;;;;;;-1:-1:-1;2389:257:1;;;;;;;;;;;;;;;;;;;;;;;;10845:108;;;;;;;;;;-1:-1:-1;10845:108:1;;;;;:::i;:::-;;:::i;16704:103::-;;;;;;;;;;-1:-1:-1;16704:103:1;;;;;:::i;:::-;;:::i;1086:189:6:-;;;;;;;;;;-1:-1:-1;1086:189:6;;;;;:::i;:::-;;:::i;22693:100:1:-;;;;;;;;;;;;;:::i;6040:81::-;6077:13;6109:5;6102:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6040:81;:::o;6929:158::-;7004:4;7020:39;136:10:2;7043:7:1;7052:6;7020:8;:39::i;:::-;-1:-1:-1;7076:4:1;6929:158;;;;;:::o;13736:185::-;13812:4;843:6:6;;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;13827:9:1::1;:20:::0;;-1:-1:-1;;;;;;13827:20:1::1;-1:-1:-1::0;;;;;13827:20:1;::::1;::::0;;::::1;::::0;;;-1:-1:-1;13857:29:1;;;:18:::1;:29;::::0;;;;:36;;-1:-1:-1;;13857:36:1::1;-1:-1:-1::0;13857:36:1;;::::1;::::0;;;972:1:6::1;13736:185:1::0;;;:::o;16582:112::-;817:7:6;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;16673:14:1::1;:6:::0;16682:5:::1;16673:14;:::i;:::-;16655:15;:32:::0;-1:-1:-1;16582:112:1:o;7094:440::-;7192:4;7208:36;7218:6;7226:9;7237:6;7208:9;:36::i;:::-;-1:-1:-1;;;;;7282:19:1;;7255:24;7282:19;;;:11;:19;;;;;;;;136:10:2;7282:33:1;;;;;;;;7333:26;;;;7325:79;;;;-1:-1:-1;;;7325:79:1;;12058:2:7;7325:79:1;;;12040:21:7;12097:2;12077:18;;;12070:30;12136:34;12116:18;;;12109:62;-1:-1:-1;;;12187:18:7;;;12180:38;12235:19;;7325:79:1;11856:404:7;7325:79:1;7438:57;7447:6;136:10:2;7488:6:1;7469:16;:25;7438:8;:57::i;:::-;-1:-1:-1;7523:4:1;;7094:440;-1:-1:-1;;;;7094:440:1:o;9198:244::-;9264:7;9302;;9291;:18;;9283:73;;;;-1:-1:-1;;;9283:73:1;;8571:2:7;9283:73:1;;;8553:21:7;8610:2;8590:18;;;8583:30;8649:34;8629:18;;;8622:62;-1:-1:-1;;;8700:18:7;;;8693:40;8750:19;;9283:73:1;8369:406:7;9283:73:1;9366:19;9389:10;:8;:10::i;:::-;9366:33;-1:-1:-1;9416:19:1;9366:33;9416:7;:19;:::i;:::-;9409:26;9198:244;-1:-1:-1;;;9198:244:1:o;10248:468::-;817:7:6;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;-1:-1:-1;;;;;10329:20:1;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;10321:60;;;;-1:-1:-1::0;;;10321:60:1::1;;;;;;;:::i;:::-;10396:9;10391:319;10415:9;:16:::0;10411:20;::::1;10391:319;;;10472:7;-1:-1:-1::0;;;;;10456:23:1::1;:9;10466:1;10456:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;10456:12:1::1;:23;10452:248;;;10514:9;10524:16:::0;;:20:::1;::::0;10543:1:::1;::::0;10524:20:::1;:::i;:::-;10514:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;10499:9:::1;:12:::0;;-1:-1:-1;;;;;10514:31:1;;::::1;::::0;10509:1;;10499:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;10499:46:1::1;-1:-1:-1::0;;;;;10499:46:1;;::::1;;::::0;;10563:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;10601:11:::1;:20:::0;;;;:28;;-1:-1:-1;;10601:28:1::1;::::0;;10647:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;10647:15:1;;;;;-1:-1:-1;;;;;;10647:15:1::1;::::0;;;;;10391:319:::1;10248:468:::0;:::o;10452:248::-:1;10433:3:::0;::::1;::::0;::::1;:::i;:::-;;;;10391:319;;;;10248:468:::0;:::o;7541:210::-;136:10:2;7629:4:1;7677:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7677:34:1;;;;;;;;;;7629:4;;7645:78;;7668:7;;7677:45;;7712:10;;7677:45;:::i;:::-;7645:8;:78::i;8394:340::-;136:10:2;8445:14:1;8493:19;;;:11;:19;;;;;;;;8492:20;8484:77;;;;-1:-1:-1;;;8484:77:1;;14745:2:7;8484:77:1;;;14727:21:7;14784:2;14764:18;;;14757:30;14823:34;14803:18;;;14796:62;-1:-1:-1;;;14874:18:7;;;14867:42;14926:19;;8484:77:1;14543:408:7;8484:77:1;8571:28;8602:26;8613:7;8622:5;8602:10;:26::i;:::-;8657:9;;-1:-1:-1;;;;;8638:15:1;;8657:9;8638:15;;;:7;:15;;;;;:28;;8571:57;;-1:-1:-1;8657:9:1;;8638:28;;8657:9;;8638:28;:::i;:::-;;;;-1:-1:-1;;8687:9:1;;8676:7;:20;;8687:9;;8676:20;;8687:9;;8676:20;:::i;:::-;;;;;;;;8720:7;8706:10;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;8394:340:1:o;23149:647::-;817:7:6;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;23239:13:1::1;::::0;-1:-1:-1;;;;;23231:35:1;;::::1;23239:13:::0;::::1;23231:35;;23223:66;;;::::0;-1:-1:-1;;;23223:66:1;;14398:2:7;23223:66:1::1;::::0;::::1;14380:21:7::0;14437:2;14417:18;;;14410:30;-1:-1:-1;;;14456:18:7;;;14449:48;14514:18;;23223:66:1::1;14196:342:7::0;23223:66:1::1;23361:18;23390:9;23361:39;;23410:16;23438:10;-1:-1:-1::0;;;;;23438:18:1::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23429:38:1::1;;23476:4;23483:10;-1:-1:-1::0;;;;;23483:15:1::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23429:72;::::0;-1:-1:-1;;;;;;23429:72:1::1;::::0;;;;;;-1:-1:-1;;;;;6461:15:7;;;23429:72:1::1;::::0;::::1;6443:34:7::0;6513:15;;6493:18;;;6486:43;6378:18;;23429:72:1::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23410:91:::0;-1:-1:-1;;;;;;23555:22:1;::::1;23551:203;;23616:10;-1:-1:-1::0;;;;;23616:18:1::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23607:41:1::1;;23657:4;23664:10;-1:-1:-1::0;;;;;23664:15:1::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23607:75;::::0;-1:-1:-1;;;;;;23607:75:1::1;::::0;;;;;;-1:-1:-1;;;;;6461:15:7;;;23607:75:1::1;::::0;::::1;6443:34:7::0;6513:15;;6493:18;;;6486:43;6378:18;;23607:75:1::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23593:11;:89:::0;;-1:-1:-1;;;;;;23593:89:1::1;-1:-1:-1::0;;;;;23593:89:1;;;::::1;::::0;;;::::1;::::0;;23551:203:::1;;;23721:11;:22:::0;;-1:-1:-1;;;;;;23721:22:1::1;-1:-1:-1::0;;;;;23721:22:1;::::1;;::::0;;23551:203:::1;-1:-1:-1::0;23763:13:1::1;:26:::0;;-1:-1:-1;;;;;;23763:26:1::1;-1:-1:-1::0;;;;;23763:26:1;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;23149:647:1:o;10726:109::-;817:7:6;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;-1:-1:-1;;;;;10794:27:1::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;10794:34:1::1;10824:4;10794:34;::::0;;10726:109::o;8741:450::-;8833:7;8871;;8860;:18;;8852:62;;;;-1:-1:-1;;;8852:62:1;;11698:2:7;8852:62:1;;;11680:21:7;11737:2;11717:18;;;11710:30;11776:33;11756:18;;;11749:61;11827:18;;8852:62:1;11496:355:7;8852:62:1;8929:17;8924:261;;8962:28;8993:26;9004:7;9013:5;8993:10;:26::i;:::-;9040:9;;-1:-1:-1;9033:16:1;;-1:-1:-1;9033:16:1;8924:261;9080:28;9111:25;9122:7;9131:4;9111:10;:25::i;:::-;9157:17;;;;-1:-1:-1;9150:24:1;;-1:-1:-1;9150:24:1;14326:513;817:7:6;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;14471:7:1::1;:23:::0;;;14504:14;:23;;;14537:20;:35;;;14582:20;:35;;;14627:19;:33;;;14649:11;14605:12;14688:19:::1;14560:12:::0;14521:6;14688:19:::1;:::i;:::-;:32;;;;:::i;:::-;:44;;;;:::i;:::-;14670:15:::0;:62;;;:7:::1;14766:14:::0;14750:30:::1;::::0;::::1;:::i;:::-;14784:5;14750:39;14742:90;;;::::0;-1:-1:-1;;;14742:90:1;;8164:2:7;14742:90:1::1;::::0;::::1;8146:21:7::0;8203:2;8183:18;;;8176:30;8242:34;8222:18;;;8215:62;-1:-1:-1;;;8293:18:7;;;8286:36;8339:19;;14742:90:1::1;7962:402:7::0;14742:90:1::1;14326:513:::0;;;;;:::o;13926:203::-;14008:4;843:6:6;;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;-1:-1:-1;14023:15:1::1;:26:::0;;-1:-1:-1;;;;;;14023:26:1::1;-1:-1:-1::0;;;;;14023:26:1;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;14059:35:1;;;:18:::1;:35;::::0;;;;:42;;-1:-1:-1;;14059:42:1::1;-1:-1:-1::0;14059:42:1;;::::1;::::0;;;-1:-1:-1;13926:203:1:o;3154:38::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3154:38:1;:::o;22539:144::-;817:7:6;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;22589:20:1::1;22612:24;22630:4;22612:9;:24::i;:::-;22589:47;;22646:30;22663:12;22646:16;:30::i;:::-;22579:104;22539:144::o:0;9449:326::-;817:7:6;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;-1:-1:-1;;;;;9531:20:1;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;9530:21;9522:61;;;;-1:-1:-1::0;;;9522:61:1::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9596:16:1;::::1;9615:1;9596:16:::0;;;:7:::1;:16;::::0;;;;;:20;9593:106:::1;;-1:-1:-1::0;;;;;9671:16:1;::::1;;::::0;;;:7:::1;:16;::::0;;;;;9651:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;9632:16:1;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;9593:106:::1;-1:-1:-1::0;;;;;9708:20:1::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;9708:27:1::1;9731:4;9708:27:::0;;::::1;::::0;;;9745:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;9745:23:1::1;::::0;;::::1;::::0;;9449:326::o;22884:136::-;817:7:6;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;-1:-1:-1;;;;;22980:20:1;;;::::1;;::::0;;;:11:::1;:20;::::0;;;;:33;;-1:-1:-1;;22980:33:1::1;::::0;::::1;;::::0;;;::::1;::::0;;22884:136::o;13528:203::-;13610:4;843:6:6;;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;-1:-1:-1;13625:15:1::1;:26:::0;;-1:-1:-1;;;;;;13625:26:1::1;-1:-1:-1::0;;;;;13625:26:1;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;13661:35:1;;;:18:::1;:35;::::0;;;;:42;;-1:-1:-1;;13661:42:1::1;-1:-1:-1::0;13661:42:1;;::::1;::::0;;;-1:-1:-1;13528:203:1:o;22368:161::-;817:7:6;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;22484:38:1::1;::::0;22463:10:::1;::::0;;;22500:21:::1;22484:38:::0;::::1;;;::::0;22430:22:::1;22484:38:::0;22430:22;22484:38;22500:21;22463:10;22484:38;::::1;;;;;;;;;;;;;::::0;::::1;;;;6408:195:::0;-1:-1:-1;;;;;6497:20:1;;6474:7;6497:20;;;:11;:20;;;;;;;;6493:49;;;-1:-1:-1;;;;;;6526:16:1;;;;;:7;:16;;;;;;;6408:195::o;6493:49::-;-1:-1:-1;;;;;6579:16:1;;;;;;:7;:16;;;;;;6559:37;;:19;:37::i;987:92:6:-;817:7;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;1051:21:::1;1069:1;1051:9;:21::i;:::-;987:92::o:0;9781:460:1:-;817:7:6;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;9881:15:1;;9864:14:::1;9906:329;9924:6;9922:1;:8;9906:329;;;9963:11;:24;9975:8;9984:1;9975:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9963:24:1::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;9963:24:1;;::::1;;9962:25;9954:65;;;;-1:-1:-1::0;;;9954:65:1::1;;;;;;;:::i;:::-;10055:1;10032:7;:20;10040:8;10049:1;10040:11;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;10032:20:1::1;-1:-1:-1::0;;;;;10032:20:1::1;;;;;;;;;;;;;:24;10029:118;;;10095:41;10115:7;:20;10123:8;10132:1;10123:11;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;10115:20:1::1;-1:-1:-1::0;;;;;10115:20:1::1;;;;;;;;;;;;;10095:19;:41::i;:::-;10072:7;:20;10080:8;10089:1;10080:11;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;10072:20:1::1;-1:-1:-1::0;;;;;10072:20:1::1;;;;;;;;;;;;:64;;;;10029:118;10183:4;10156:11;:24;10168:8;10177:1;10168:11;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;10156:24:1::1;-1:-1:-1::0;;;;;10156:24:1::1;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;10197:9;10212:8;10221:1;10212:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;10197:27;;::::1;::::0;::::1;::::0;;-1:-1:-1;10197:27:1;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;10197:27:1::1;-1:-1:-1::0;;;;;10197:27:1;;::::1;::::0;;;::::1;::::0;;9931:3;::::1;::::0;::::1;:::i;:::-;;;;9906:329;;;;9854:387;9781:460:::0;:::o;14134:182::-;14209:4;843:6:6;;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;-1:-1:-1;14224:8:1::1;:19:::0;;-1:-1:-1;;;;;;14224:19:1::1;-1:-1:-1::0;;;;;14224:19:1;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;14253:28:1;;;:18:::1;:28;::::0;;;;:35;;-1:-1:-1;;14253:35:1::1;-1:-1:-1::0;14253:35:1;;::::1;::::0;;;-1:-1:-1;14134:182:1:o;15675:113::-;817:7:6;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;15767:14:1::1;:6:::0;15776:5:::1;15767:14;:::i;:::-;15751:13;:30:::0;-1:-1:-1;15675:113:1:o;6128:85::-;6167:13;6199:7;6192:14;;;;;:::i;7758:405::-;136:10:2;7851:4:1;7894:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7894:34:1;;;;;;;;;;7946:35;;;;7938:85;;;;-1:-1:-1;;;7938:85:1;;15158:2:7;7938:85:1;;;15140:21:7;15197:2;15177:18;;;15170:30;15236:34;15216:18;;;15209:62;-1:-1:-1;;;15287:18:7;;;15280:35;15332:19;;7938:85:1;14956:401:7;7938:85:1;8057:67;136:10:2;8080:7:1;8108:15;8089:16;:34;8057:8;:67::i;:::-;-1:-1:-1;8152:4:1;;7758:405;-1:-1:-1;;;7758:405:1:o;6610:164::-;6688:4;6704:42;136:10:2;6728:9:1;6739:6;6704:9;:42::i;15551:114::-;817:7:6;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;15627:16:1;:31;15551:114::o;15798:630::-;817:7:6;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;16065:96:1::1;::::0;;;;::::1;::::0;;;16103:21;;16095:7:::1;::::0;16065:96;;16125:6:::1;::::0;16095:29:::1;::::0;16103:21;16095:29:::1;:::i;:::-;:36;;;;:::i;:::-;16065:96:::0;;16145:14;;16065:96:::1;::::0;;::::1;::::0;16041:120;;:18:::1;:120:::0;::::1;::::0;;;16195:96:::1;::::0;;;;::::1;::::0;;;;16255:6:::1;16233:18:::0;16041:120:::1;16233:21;;;;16225:7;;:29;;;;:::i;:::-;:36;;;;:::i;:::-;16195:96:::0;;::::1;16275:14:::0;;::::1;::::0;16195:96;;::::1;::::0;;;;16171:120;;:21;:120;::::1;::::0;;;16325:96:::1;::::0;;;;::::1;::::0;;16363:21;;::::1;::::0;16355:7:::1;::::0;16325:96;;16385:6:::1;::::0;16355:29:::1;::::0;16363:21;16355:29:::1;:::i;:::-;:36;;;;:::i;:::-;16325:96:::0;;16405:14;;;::::1;::::0;16325:96:::1;::::0;;::::1;::::0;16301:120;;:21;:120;::::1;::::0;;;-1:-1:-1;15798:630:1:o;14849:578::-;817:7:6;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;15015:8:1::1;:28:::0;;;15053:15;:28;;;15091:21;:40;;;15141:21;:40;;;15191:20;:38;;;15214:15;15165:16;15258:27:::1;15115:16:::0;15071:10;15258:27:::1;:::i;:::-;:44;;;;:::i;:::-;:60;;;;:::i;:::-;15239:16:::0;:79;;;:8:::1;15353:15:::0;15336:32:::1;::::0;::::1;:::i;15437:104::-:0;817:7:6;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;15508:15:1;:26;15437:104::o;16434:138::-;817:7:6;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;16500:11:1::1;:22:::0;;;::::1;;-1:-1:-1::0;;;16500:22:1::1;-1:-1:-1::0;;;;16500:22:1;;::::1;;::::0;;16537:28:::1;::::0;::::1;::::0;::::1;::::0;16514:8;6705:14:7;6698:22;6680:41;;6668:2;6653:18;;6540:187;16537:28:1::1;;;;;;;;16434:138:::0;:::o;10845:108::-;817:7:6;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;-1:-1:-1;;;;;10911:27:1::1;10941:5;10911:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;10911:35:1::1;::::0;;10845:108::o;16704:103::-;817:7:6;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;16786:14:1::1;:6:::0;16795:5:::1;16786:14;:::i;:::-;16772:11;:28:::0;-1:-1:-1;16704:103:1:o;1086:189:6:-;817:7;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;-1:-1:-1;;;;;1174:22:6;::::1;1166:73;;;::::0;-1:-1:-1;;;1166:73:6;;9340:2:7;1166:73:6::1;::::0;::::1;9322:21:7::0;9379:2;9359:18;;;9352:30;9418:34;9398:18;;;9391:62;-1:-1:-1;;;9469:18:7;;;9462:36;9515:19;;1166:73:6::1;9138:402:7::0;1166:73:6::1;1249:19;1259:8;1249:9;:19::i;22693:100:1:-:0;817:7:6;843:6;-1:-1:-1;;;;;843:6:6;136:10:2;902:23:6;894:68;;;;-1:-1:-1;;;894:68:6;;;;;;;:::i;:::-;22743:43:1::1;22761:24;22779:4;22761:9;:24::i;:::-;22743:17;:43::i;16945:331::-:0;-1:-1:-1;;;;;17037:19:1;;17029:68;;;;-1:-1:-1;;;17029:68:1;;13993:2:7;17029:68:1;;;13975:21:7;14032:2;14012:18;;;14005:30;14071:34;14051:18;;;14044:62;-1:-1:-1;;;14122:18:7;;;14115:34;14166:19;;17029:68:1;13791:400:7;17029:68:1;-1:-1:-1;;;;;17115:21:1;;17107:68;;;;-1:-1:-1;;;17107:68:1;;9747:2:7;17107:68:1;;;9729:21:7;9786:2;9766:18;;;9759:30;9825:34;9805:18;;;9798:62;-1:-1:-1;;;9876:18:7;;;9869:32;9918:19;;17107:68:1;9545:398:7;17107:68:1;-1:-1:-1;;;;;17186:18:1;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17237:32;;15508:25:7;;;17237:32:1;;15481:18:7;17237:32:1;;;;;;;16945:331;;;:::o;17829:2094::-;-1:-1:-1;;;;;17946:18:1;;17938:68;;;;-1:-1:-1;;;17938:68:1;;13238:2:7;17938:68:1;;;13220:21:7;13277:2;13257:18;;;13250:30;13316:34;13296:18;;;13289:62;-1:-1:-1;;;13367:18:7;;;13360:35;13412:19;;17938:68:1;13036:401:7;17938:68:1;-1:-1:-1;;;;;18024:16:1;;18016:64;;;;-1:-1:-1;;;18016:64:1;;7760:2:7;18016:64:1;;;7742:21:7;7799:2;7779:18;;;7772:30;7838:34;7818:18;;;7811:62;-1:-1:-1;;;7889:18:7;;;7882:33;7932:19;;18016:64:1;7558:399:7;18016:64:1;18107:1;18098:6;:10;18090:64;;;;-1:-1:-1;;;18090:64:1;;12828:2:7;18090:64:1;;;12810:21:7;12867:2;12847:18;;;12840:30;12906:34;12886:18;;;12879:62;-1:-1:-1;;;12957:18:7;;;12950:39;13006:19;;18090:64:1;12626:405:7;18090:64:1;-1:-1:-1;;;;;18173:17:1;;;;;;:11;:17;;;;;;;;18172:18;:38;;;;-1:-1:-1;;;;;;18195:15:1;;;;;;:11;:15;;;;;;;;18194:16;18172:38;18164:71;;;;-1:-1:-1;;;18164:71:1;;13644:2:7;18164:71:1;;;13626:21:7;13683:2;13663:18;;;13656:30;-1:-1:-1;;;13702:18:7;;;13695:50;13762:18;;18164:71:1;13442:344:7;18164:71:1;-1:-1:-1;;;;;18258:24:1;;;;;;:18;:24;;;;;;;;18257:25;:52;;;;-1:-1:-1;;;;;;18287:22:1;;;;;;:18;:22;;;;;;;;18286:23;18257:52;18254:144;;;18342:11;;18332:6;:21;;18324:63;;;;-1:-1:-1;;;18324:63:1;;8982:2:7;18324:63:1;;;8964:21:7;9021:2;9001:18;;;8994:30;9060:31;9040:18;;;9033:59;9109:18;;18324:63:1;8780:353:7;18324:63:1;-1:-1:-1;;;;;18420:24:1;;;;;;:18;:24;;;;;;;;18419:25;:46;;;;-1:-1:-1;18454:11:1;;-1:-1:-1;;;;;18448:17:1;;;18454:11;;18448:17;18419:46;18416:526;;;-1:-1:-1;;;;;18501:16:1;;;;;;:10;:16;;;;;;:29;;18518:12;18501:29;:::i;:::-;18483:15;:47;18480:435;;;18583:13;;-1:-1:-1;;;;;18557:15:1;;;;;;:9;:15;;;;;;:22;;18573:6;;18557:22;:::i;:::-;:39;;18549:90;;;;-1:-1:-1;;;18549:90:1;;;;;;;:::i;:::-;-1:-1:-1;;;;;18657:15:1;;;;;;:9;:15;;;;;:25;;18676:6;;18657:15;:25;;18676:6;;18657:25;:::i;:::-;;;;-1:-1:-1;18480:435:1;;-1:-1:-1;18480:435:1;;18750:13;;18740:6;:23;;18732:74;;;;-1:-1:-1;;;18732:74:1;;;;;;;:::i;:::-;-1:-1:-1;;;;;18824:16:1;;;;;;:10;:16;;;;;;;;18843:15;18824:34;;18876:9;:15;;;;;:24;;;18480:435;18960:28;18991:24;19009:4;18991:9;:24::i;:::-;19085:15;;18960:55;;-1:-1:-1;19061:39:1;;;;;;;19127:42;;-1:-1:-1;19163:6:1;;-1:-1:-1;;;19163:6:1;;;;19162:7;19127:42;:77;;;;-1:-1:-1;19193:11:1;;-1:-1:-1;;;;;19185:19:1;;;19193:11;;19185:19;;19127:77;:104;;;;-1:-1:-1;19220:11:1;;-1:-1:-1;;;19220:11:1;;;;19127:104;19110:248;;;19279:15;;19256:38;;19308:39;19326:20;19308:17;:39::i;:::-;-1:-1:-1;;;;;19589:24:1;;19436:12;19589:24;;;:18;:24;;;;;;19451:4;;19436:12;19589:24;;;:50;;-1:-1:-1;;;;;;19617:22:1;;;;;;:18;:22;;;;;;;;19589:50;19586:195;;;19664:5;19654:15;;19586:195;;;19717:11;;-1:-1:-1;;;;;19711:17:1;;;19717:11;;19711:17;19708:63;;;-1:-1:-1;19752:4:1;19708:63;19870:46;19885:4;19890:2;19893:6;19900:7;19909:6;19870:14;:46::i;:::-;17928:1995;;;;17829:2094;;;:::o;12476:155::-;12517:7;12537:15;12554;12573:19;:17;:19::i;:::-;12536:56;;-1:-1:-1;12536:56:1;-1:-1:-1;12609:15:1;12536:56;;12609:15;:::i;:::-;12602:22;;;;12476:155;:::o;11200:338::-;11273:36;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11273:36:1;11333:29;11345:7;11354;11333:11;:29::i;:::-;11321:41;;11454:51;11466:9;11476:7;11485;11494:10;:8;:10::i;:::-;11454:11;:51::i;:::-;11435:15;;;11372:133;11419:14;;;11372:133;11392:25;;;11372:133;;;11200:338;;;;:::o;20490:673::-;4149:6;:13;;-1:-1:-1;;;;4149:13:1;-1:-1:-1;;;4149:13:1;;;20655:16:::1;::::0;;20669:1:::1;20655:16:::0;;;;;::::1;::::0;;-1:-1:-1;;20655:16:1::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;20655:16:1::1;20631:40;;20699:4;20681;20686:1;20681:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20681:23:1;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;20724:13:::1;::::0;:20:::1;::::0;;-1:-1:-1;;;20724:20:1;;;;:13;;;::::1;::::0;:18:::1;::::0;:20:::1;::::0;;::::1;::::0;20681:7;;20724:20;;;;;:13;:20;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20714:4;20719:1;20714:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20714:30:1;;::::1;:7;::::0;;::::1;::::0;;;;;;:30;;;;20791:13:::1;::::0;20776:4:::1;6862:7:::0;6888:18;;;:11;:18;;;;;;20791:13;;;::::1;6888:27:::0;;;;;;20809:11;-1:-1:-1;20755:150:1::1;;;20866:13;::::0;20834:60:::1;::::0;20851:4:::1;::::0;-1:-1:-1;;;;;20866:13:1::1;-1:-1:-1::0;;20834:8:1::1;:60::i;:::-;20940:13;::::0;:216:::1;::::0;-1:-1:-1;;;20940:216:1;;-1:-1:-1;;;;;20940:13:1;;::::1;::::0;:64:::1;::::0;:216:::1;::::0;21018:11;;20940:13:::1;::::0;21086:4;;21112::::1;::::0;21131:15:::1;::::0;20940:216:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4183:6:1;:14;;-1:-1:-1;;;;4183:14:1;;;-1:-1:-1;;;;20490:673:1:o;1282:169:6:-;1337:16;1356:6;;-1:-1:-1;;;;;1372:17:6;;;-1:-1:-1;;;;;;1372:17:6;;;;;;1404:40;;1356:6;;;;;;;1404:40;;1337:16;1404:40;1327:124;1282:169;:::o;19933:550:1:-;20019:21;20050:24;20067:6;20050:16;:24::i;:::-;20084:23;20110:36;20132:14;20110:21;:36;:::i;:::-;20211:19;;20192:18;;20084:62;;-1:-1:-1;20156:75:1;;20176:34;;20084:62;20176:34;:::i;:::-;:54;;;;:::i;:::-;20156:9;;-1:-1:-1;;;;;20156:9:1;;:19;:75::i;:::-;20308:19;;20283:24;;20241:87;;20308:19;20267:40;;:15;:40;:::i;:::-;:60;;;;:::i;:::-;20241:15;;-1:-1:-1;;;;;20241:15:1;;:25;:87::i;:::-;20397:19;;20373:23;;20338:79;;20397:19;20357:39;;:15;:39;:::i;:::-;:59;;;;:::i;:::-;20338:8;;-1:-1:-1;;;;;20338:8:1;;:18;:79::i;:::-;20427:15;;:48;;-1:-1:-1;;;;;20427:15:1;20453:21;20427:25;:48::i;21243:999::-;21365:7;21362:260;;;21390:6;21387:225;;;21438:8;21424:22;:11;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21499:17:1;;21424:22;21499:17;;;21424:22;21499:17;;;;;;;21483:34;;:15;:34::i;:::-;21460:19;:57;;:19;;:57;;;;;:::i;:::-;;;;-1:-1:-1;21387:225:1;;-1:-1:-1;21387:225:1;;21590:7;21576:21;:11;:21;;;;;;;;;;;;;;;;;;;;;;;;;21387:225;21640:28;21671:27;21682:6;21690:7;21671:10;:27::i;:::-;-1:-1:-1;;;;;21713:19:1;;;;;;:11;:19;;;;;;21640:58;;-1:-1:-1;21713:19:1;;21709:74;;;-1:-1:-1;;;;;21748:15:1;;;;;;:7;:15;;;;;:24;;21766:6;;21748:15;:24;;21766:6;;21748:24;:::i;:::-;;;;-1:-1:-1;;21709:74:1;-1:-1:-1;;;;;21797:22:1;;;;;;:11;:22;;;;;;;;21793:92;;;21857:17;;;;-1:-1:-1;;;;;21835:18:1;;;;;;:7;:18;;;;;:39;;:18;;;:39;;21857:17;;21835:39;:::i;:::-;;;;-1:-1:-1;;21793:92:1;21913:9;;-1:-1:-1;;;;;21894:15:1;;21913:9;21894:15;;;:7;:15;;;;;:28;;:15;;21913:9;21894:28;;21913:9;;21894:28;:::i;:::-;;;;-1:-1:-1;;21953:17:1;;;;;-1:-1:-1;;;;;21932:18:1;;;;;;:7;:18;;;;;;:38;;21953:17;;21932:18;;:38;;21953:17;;21932:38;:::i;:::-;;;;-1:-1:-1;;21989:186:1;;;;22028:30;22042:1;:7;;;22050:1;:7;;;22028:13;:30::i;:::-;22073:27;22085:1;:6;;;22093:1;:6;;;22073:11;:27::i;:::-;22145:4;-1:-1:-1;;;;;22120:40:1;22129:6;-1:-1:-1;;;;;22120:40:1;;22152:1;:7;;;22120:40;;;;15508:25:7;;15496:2;15481:18;;15362:177;22120:40:1;;;;;;;;21989:186;22206:9;-1:-1:-1;;;;;22189:46:1;22198:6;-1:-1:-1;;;;;22189:46:1;;22217:1;:17;;;22189:46;;;;15508:25:7;;15496:2;15481:18;;15362:177;22189:46:1;;;;;;;;21352:890;21243:999;;;;;:::o;12638:551::-;12734:7;;12769;;12803:9;:16;12688:7;;;;12734;;12688;12833:249;12857:6;12853:1;:10;12833:249;;;12912:7;12888;:21;12896:9;12906:1;12896:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;12896:12:1;12888:21;;;;;;;;;;;;;:31;;:66;;;12947:7;12923;:21;12931:9;12941:1;12931:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;12931:12:1;12923:21;;;;;;;;;;;;;:31;12888:66;12884:97;;;12964:7;;12973;;12956:25;;;;;;;;12638:551;;:::o;12884:97::-;13005:7;:21;13013:9;13023:1;13013:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13013:12:1;13005:21;;;;;;;;;;;;;12995:31;;;;:::i;:::-;;;13050:7;:21;13058:9;13068:1;13058:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;13058:12:1;13050:21;;;;;;;;;;;;;13040:31;;;;:::i;:::-;;-1:-1:-1;12865:3:1;;;;:::i;:::-;;;;12833:249;;;;13113:7;;13105;;:15;;;;:::i;:::-;13095:7;:25;13091:56;;;13130:7;;13139;;13122:25;;;;;;;12638:551;;:::o;13091:56::-;-1:-1:-1;13165:7:1;;13174;;-1:-1:-1;12638:551:1;-1:-1:-1;12638:551:1:o;11545:421::-;11619:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11619:28:1;11663:7;11659:83;;11684:17;;;:27;;;11723:8;;11659:83;11788:11;:18;11768:19;;11807:7;;11788:18;11760:27;;:7;:27;:::i;:::-;:46;;;;:::i;:::-;:54;;;;:::i;:::-;11751:6;;;:63;11862:19;;11842;;11882:7;;11862:19;11834:27;;:7;:27;:::i;:::-;:47;;;;:::i;:::-;:55;;;;:::i;:::-;11824:7;;;:65;;;11927:6;;;;11919:14;;:7;:14;:::i;:::-;:22;;;;:::i;:::-;11899:17;;;:42;11545:421;;;;:::o;11973:496::-;12098:7;;;;;12162:19;12170:11;12162:7;:19;:::i;:::-;12144:37;;12195:7;12191:74;;12234:7;-1:-1:-1;12234:7:1;;-1:-1:-1;12250:1:1;;-1:-1:-1;12250:1:1;;-1:-1:-1;12226:28:1;;12191:74;12274:12;12296:11;12289:1;:6;;;:18;;;;:::i;:::-;12274:33;;12317:13;12341:11;12333:1;:7;;;:19;;;;:::i;:::-;12317:35;-1:-1:-1;12362:23:1;12317:35;12388:12;12396:4;12388:7;:12;:::i;:::-;:18;;;;:::i;:::-;12424:7;;-1:-1:-1;12362:44:1;;-1:-1:-1;12450:4:1;;-1:-1:-1;12456:5:1;-1:-1:-1;;11973:496:1;;;;;;;;;;:::o;48:314:0:-;162:6;137:21;:31;;129:73;;;;-1:-1:-1;;;129:73:0;;11340:2:7;129:73:0;;;11322:21:7;11379:2;11359:18;;;11352:30;11418:31;11398:18;;;11391:59;11467:18;;129:73:0;11138:353:7;129:73:0;214:12;232:9;-1:-1:-1;;;;;232:14:0;255:6;232:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;213:54;;;285:7;277:78;;;;-1:-1:-1;;;277:78:0;;10506:2:7;277:78:0;;;10488:21:7;10545:2;10525:18;;;10518:30;10584:34;10564:18;;;10557:62;10655:28;10635:18;;;10628:56;10701:19;;277:78:0;10304:422:7;17286:537:1;17394:18;:39;17349:16;;17385:48;;17382:411;;;-1:-1:-1;17456:1:1;13736:185;;;:::o;17382:411::-;17494:21;:39;17485:48;;17482:311;;;17558:18;17577:1;17558:21;;;;:31;;;17547:42;;13736:185;;;:::o;17482:311::-;17626:21;:39;17617:48;;17614:179;;;17690:18;17709:1;17690:21;;17614:179;-1:-1:-1;;17759:31:1;;;17286:537::o;13199:192::-;13287:4;13271:22;;;;:7;:22;;;;;:30;;13296:5;;13271:22;:30;;13296:5;;13271:30;:::i;:::-;;;;-1:-1:-1;;13334:4:1;13314:26;;;;:11;:26;;;;;;;;13311:73;;;13370:4;13354:22;;;;:7;:22;;;;;:30;;13379:5;;13354:22;:30;;13379:5;;13354:30;:::i;:::-;;;;-1:-1:-1;;13199:192:1;;:::o;11054:139::-;11143:4;11135:7;;:12;;;;:::i;:::-;11121:7;:26;11171:10;;:15;;11182:4;;11171:15;:::i;:::-;11157:10;:29;-1:-1:-1;;11054:139:1:o;14:682:7:-;64:5;117:3;110:4;102:6;98:17;94:27;84:55;;135:1;132;125:12;84:55;168:2;162:9;210:2;202:6;198:15;279:6;267:10;264:22;243:18;231:10;228:34;225:62;222:88;;;290:18;;:::i;:::-;326:2;319:22;361:6;387;420:2;408:15;;405:24;-1:-1:-1;402:44:7;;;442:1;439;432:12;402:44;464:1;474:192;488:4;485:1;482:11;474:192;;;547:17;;535:30;;588:4;612:12;;;;644;;;;508:1;501:9;474:192;;;-1:-1:-1;684:6:7;;14:682;-1:-1:-1;;;;;14:682:7:o;701:160::-;766:20;;822:13;;815:21;805:32;;795:60;;851:1;848;841:12;866:247;925:6;978:2;966:9;957:7;953:23;949:32;946:52;;;994:1;991;984:12;946:52;1033:9;1020:23;1052:31;1077:5;1052:31;:::i;1118:251::-;1188:6;1241:2;1229:9;1220:7;1216:23;1212:32;1209:52;;;1257:1;1254;1247:12;1209:52;1289:9;1283:16;1308:31;1333:5;1308:31;:::i;1634:388::-;1702:6;1710;1763:2;1751:9;1742:7;1738:23;1734:32;1731:52;;;1779:1;1776;1769:12;1731:52;1818:9;1805:23;1837:31;1862:5;1837:31;:::i;:::-;1887:5;-1:-1:-1;1944:2:7;1929:18;;1916:32;1957:33;1916:32;1957:33;:::i;:::-;2009:7;1999:17;;;1634:388;;;;;:::o;2027:456::-;2104:6;2112;2120;2173:2;2161:9;2152:7;2148:23;2144:32;2141:52;;;2189:1;2186;2179:12;2141:52;2228:9;2215:23;2247:31;2272:5;2247:31;:::i;:::-;2297:5;-1:-1:-1;2354:2:7;2339:18;;2326:32;2367:33;2326:32;2367:33;:::i;:::-;2027:456;;2419:7;;-1:-1:-1;;;2473:2:7;2458:18;;;;2445:32;;2027:456::o;2488:315::-;2553:6;2561;2614:2;2602:9;2593:7;2589:23;2585:32;2582:52;;;2630:1;2627;2620:12;2582:52;2669:9;2656:23;2688:31;2713:5;2688:31;:::i;:::-;2738:5;-1:-1:-1;2762:35:7;2793:2;2778:18;;2762:35;:::i;:::-;2752:45;;2488:315;;;;;:::o;2808:::-;2876:6;2884;2937:2;2925:9;2916:7;2912:23;2908:32;2905:52;;;2953:1;2950;2943:12;2905:52;2992:9;2979:23;3011:31;3036:5;3011:31;:::i;:::-;3061:5;3113:2;3098:18;;;;3085:32;;-1:-1:-1;;;2808:315:7:o;3128:1032::-;3212:6;3243:2;3286;3274:9;3265:7;3261:23;3257:32;3254:52;;;3302:1;3299;3292:12;3254:52;3342:9;3329:23;3371:18;3412:2;3404:6;3401:14;3398:34;;;3428:1;3425;3418:12;3398:34;3466:6;3455:9;3451:22;3441:32;;3511:7;3504:4;3500:2;3496:13;3492:27;3482:55;;3533:1;3530;3523:12;3482:55;3569:2;3556:16;3591:2;3587;3584:10;3581:36;;;3597:18;;:::i;:::-;3643:2;3640:1;3636:10;3626:20;;3666:28;3690:2;3686;3682:11;3666:28;:::i;:::-;3728:15;;;3759:12;;;;3791:11;;;3821;;;3817:20;;3814:33;-1:-1:-1;3811:53:7;;;3860:1;3857;3850:12;3811:53;3882:1;3873:10;;3892:238;3906:2;3903:1;3900:9;3892:238;;;3977:3;3964:17;3951:30;;3994:31;4019:5;3994:31;:::i;:::-;4038:18;;;3924:1;3917:9;;;;;4076:12;;;;4108;;3892:238;;;-1:-1:-1;4149:5:7;3128:1032;-1:-1:-1;;;;;;;;3128:1032:7:o;4165:337::-;4279:6;4287;4340:3;4328:9;4319:7;4315:23;4311:33;4308:53;;;4357:1;4354;4347:12;4308:53;4380:44;4416:7;4405:9;4380:44;:::i;:::-;4370:54;;4443:53;4488:7;4483:2;4472:9;4468:18;4443:53;:::i;4507:180::-;4563:6;4616:2;4604:9;4595:7;4591:23;4587:32;4584:52;;;4632:1;4629;4622:12;4584:52;4655:26;4671:9;4655:26;:::i;4692:180::-;4751:6;4804:2;4792:9;4783:7;4779:23;4775:32;4772:52;;;4820:1;4817;4810:12;4772:52;-1:-1:-1;4843:23:7;;4692:180;-1:-1:-1;4692:180:7:o;4877:248::-;4942:6;4950;5003:2;4991:9;4982:7;4978:23;4974:32;4971:52;;;5019:1;5016;5009:12;4971:52;5055:9;5042:23;5032:33;;5084:35;5115:2;5104:9;5100:18;5084:35;:::i;5130:454::-;5225:6;5233;5241;5249;5257;5310:3;5298:9;5289:7;5285:23;5281:33;5278:53;;;5327:1;5324;5317:12;5278:53;-1:-1:-1;;5350:23:7;;;5420:2;5405:18;;5392:32;;-1:-1:-1;5471:2:7;5456:18;;5443:32;;5522:2;5507:18;;5494:32;;-1:-1:-1;5573:3:7;5558:19;5545:33;;-1:-1:-1;5130:454:7;-1:-1:-1;5130:454:7:o;6956:597::-;7068:4;7097:2;7126;7115:9;7108:21;7158:6;7152:13;7201:6;7196:2;7185:9;7181:18;7174:34;7226:1;7236:140;7250:6;7247:1;7244:13;7236:140;;;7345:14;;;7341:23;;7335:30;7311:17;;;7330:2;7307:26;7300:66;7265:10;;7236:140;;;7394:6;7391:1;7388:13;7385:91;;;7464:1;7459:2;7450:6;7439:9;7435:22;7431:31;7424:42;7385:91;-1:-1:-1;7537:2:7;7516:15;-1:-1:-1;;7512:29:7;7497:45;;;;7544:2;7493:54;;6956:597;-1:-1:-1;;;6956:597:7:o;9948:351::-;10150:2;10132:21;;;10189:2;10169:18;;;10162:30;10228:29;10223:2;10208:18;;10201:57;10290:2;10275:18;;9948:351::o;10731:402::-;10933:2;10915:21;;;10972:2;10952:18;;;10945:30;11011:34;11006:2;10991:18;;10984:62;-1:-1:-1;;;11077:2:7;11062:18;;11055:36;11123:3;11108:19;;10731:402::o;12265:356::-;12467:2;12449:21;;;12486:18;;;12479:30;12545:34;12540:2;12525:18;;12518:62;12612:2;12597:18;;12265:356::o;15544:980::-;15806:4;15854:3;15843:9;15839:19;15885:6;15874:9;15867:25;15911:2;15949:6;15944:2;15933:9;15929:18;15922:34;15992:3;15987:2;15976:9;15972:18;15965:31;16016:6;16051;16045:13;16082:6;16074;16067:22;16120:3;16109:9;16105:19;16098:26;;16159:2;16151:6;16147:15;16133:29;;16180:1;16190:195;16204:6;16201:1;16198:13;16190:195;;;16269:13;;-1:-1:-1;;;;;16265:39:7;16253:52;;16360:15;;;;16325:12;;;;16301:1;16219:9;16190:195;;;-1:-1:-1;;;;;;;16441:32:7;;;;16436:2;16421:18;;16414:60;-1:-1:-1;;;16505:3:7;16490:19;16483:35;16402:3;15544:980;-1:-1:-1;;;15544:980:7:o;17583:275::-;17654:2;17648:9;17719:2;17700:13;;-1:-1:-1;;17696:27:7;17684:40;;17754:18;17739:34;;17775:22;;;17736:62;17733:88;;;17801:18;;:::i;:::-;17837:2;17830:22;17583:275;;-1:-1:-1;17583:275:7:o;17863:128::-;17903:3;17934:1;17930:6;17927:1;17924:13;17921:39;;;17940:18;;:::i;:::-;-1:-1:-1;17976:9:7;;17863:128::o;17996:217::-;18036:1;18062;18052:132;;18106:10;18101:3;18097:20;18094:1;18087:31;18141:4;18138:1;18131:15;18169:4;18166:1;18159:15;18052:132;-1:-1:-1;18198:9:7;;17996:217::o;18218:168::-;18258:7;18324:1;18320;18316:6;18312:14;18309:1;18306:21;18301:1;18294:9;18287:17;18283:45;18280:71;;;18331:18;;:::i;:::-;-1:-1:-1;18371:9:7;;18218:168::o;18391:125::-;18431:4;18459:1;18456;18453:8;18450:34;;;18464:18;;:::i;:::-;-1:-1:-1;18501:9:7;;18391:125::o;18521:380::-;18600:1;18596:12;;;;18643;;;18664:61;;18718:4;18710:6;18706:17;18696:27;;18664:61;18771:2;18763:6;18760:14;18740:18;18737:38;18734:161;;;18817:10;18812:3;18808:20;18805:1;18798:31;18852:4;18849:1;18842:15;18880:4;18877:1;18870:15;18734:161;;18521:380;;;:::o;18906:135::-;18945:3;-1:-1:-1;;18966:17:7;;18963:43;;;18986:18;;:::i;:::-;-1:-1:-1;19033:1:7;19022:13;;18906:135::o;19046:127::-;19107:10;19102:3;19098:20;19095:1;19088:31;19138:4;19135:1;19128:15;19162:4;19159:1;19152:15;19178:127;19239:10;19234:3;19230:20;19227:1;19220:31;19270:4;19267:1;19260:15;19294:4;19291:1;19284:15;19310:127;19371:10;19366:3;19362:20;19359:1;19352:31;19402:4;19399:1;19392:15;19426:4;19423:1;19416:15;19442:127;19503:10;19498:3;19494:20;19491:1;19484:31;19534:4;19531:1;19524:15;19558:4;19555:1;19548:15;19574:131;-1:-1:-1;;;;;19649:31:7;;19639:42;;19629:70;;19695:1;19692;19685:12

Swarm Source

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