Contract 0x874425cF1802535976C62d26Fe84E45f31c3840b 2

 

Contract Overview

Balance:
1 wei

EtherValue:
Less Than $0.01 (@ $1,620.43/ETH)

Token:
Txn Hash
Method
Block
From
To
Value
0xc31f0e1d0fe7b475ceabf2f1d3d5096d5b41008ef68c40b13e103846303437a2Approve151545592022-07-16 15:33:3734 days 8 hrs ago0x8d483b5f943cb83c305981868fe289b7b75e90d5 IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.00143153 30.28998074
0xf10325ede4e0293e1150fcae1e5830f88141cfc9f43052b29315916f45adbb0dApprove149628402022-06-14 17:11:0066 days 6 hrs ago0xd00d5e636e3f92ce4c821b36535c85c98286d799 IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.00295834 62.5958098
0xe7e2343cfceded600be755d5230b208af29c2a04784ed824aeab3e7e31bb9a0cApprove149202972022-06-07 10:26:2273 days 13 hrs ago0x3698f9b25a9c9b42b4ad8ad677fdb170d62dda0d IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.00140181 29.66104516
0x643ccbe75b8f373e7b0b8168dcccd76c62aab7a1a20d41d096b35d3a11a289e9Approve148267542022-05-23 1:34:1388 days 22 hrs ago0x9367794a2950d1bc5298550a4795626d8ad533e8 IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.00121639 25.73774641
0xff46f1b57cb2156497ee3a48dea551b6a26ff9fa0cd9ebe75b8c152b7cae40f6Transfer146954392022-05-02 1:27:21109 days 22 hrs agoScam Inu: Deployer IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.0029322 35.6858749
0xdf0419587e42ef01ce3ca5bdd83443db763c26a1d2f567664d2283aa5f2738faManualsend146626992022-04-26 22:12:30115 days 1 hr agoScam Inu: Deployer IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.00230768 53.77720778
0xe6307e2308722912840c2bc9d6405829d92eb22a06f63692b52767bf9372cc4bManualswap146626932022-04-26 22:10:20115 days 1 hr agoScam Inu: Deployer IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.00658942 37.38510687
0xf423eab23aef7a69ef9cf248eb97e7d3538cfb25514bb2c63403db32ac328de6Manualsend146626752022-04-26 22:07:11115 days 1 hr agoScam Inu: Deployer IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.00195678 45.60005391
0x17718216fc5d8029936dbeebe0dec6705ef5acb9c916e002f6ed98aa193e6922Transfer146626682022-04-26 22:06:08115 days 1 hr agoScam Inu: Deployer IN  0x874425cf1802535976c62d26fe84e45f31c3840b0.01094 Ether0.0008604 40.86472672
0xc2c5c8c30e27608415c7befe6fb871c006483883f875cc3dfd45bb24cef9a4a1Allow Pre Tradin...146626392022-04-26 22:00:31115 days 1 hr agoScam Inu: Deployer IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.0021174 45.01197345
0x254b4ede60c7c5ca16ac6f2ed6c9b7275ebcfe69411fad74b571de4449dea91eSet Fee146625702022-04-26 21:48:04115 days 1 hr agoScam Inu: Deployer IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.00220303 60.32730473
0x1b278e6da164d39613a8c6cc6061a325fcf1867e0ab1a7b500430da9cc4abdd0Set Fee146625552022-04-26 21:44:49115 days 1 hr agoScam Inu: Deployer IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.00194963 53.38833298
0x8a887550280321982eb9e2445471142387835457a450a370a4c4584175c89891Set Fee146625302022-04-26 21:39:08115 days 2 hrs agoScam Inu: Deployer IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.00187712 47.74224092
0x057609dfa4b10e3f2572af8298edcca629849a356f21e90d201e69194d61c6eeToggle Swap146624752022-04-26 21:27:24115 days 2 hrs agoScam Inu: Deployer IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.00151452 57.85032006
0xbbc6d6c16338451c7cdeccb1cde08e5530c305d95bc0831a2ca9e40181ed3e9aSet Min Swap Tok...146624702022-04-26 21:26:16115 days 2 hrs agoScam Inu: Deployer IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.00189158 65.28341021
0x1b5d00f41a3f4851888d93f2022c17d1d858958b3034008124a2701a5afa614bSet Trading146624562022-04-26 21:22:38115 days 2 hrs agoScam Inu: Deployer IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.00255403 87.92771904
0xaba0c0d4116d6497401bbf9188a4bed068c57bd472f3a978683142a312c6ae03Approve146613212022-04-26 16:59:43115 days 6 hrs ago0x22a63363c629a3c4619a09e13ece3478d949055f IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.00368449 77.96061351
0x0ac0ad10c29791221407abda50fd05a42f23785b212c9ec9788c60c7b0aa7316Set Fee146604652022-04-26 13:44:01115 days 10 hrs agoScam Inu: Deployer IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.00160712 40.87502985
0xed47c9910df27d51bd1e2dc6f8eac759ceb9c0325cf3b4889921f6920cc6b739Set Trading146603792022-04-26 13:24:09115 days 10 hrs agoScam Inu: Deployer IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.00146448 50.43850153
0xb1588d4dfcd50d5eb58b057128f459d2fe4a77b022a1e92c58df43fddd96afd3Transfer Ownersh...146560642022-04-25 21:01:21116 days 2 hrs ago0x152e69fb1377f40edbfa6033b5e961e0e540fd3d IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.0017932 61.89854026
0xd90e126f4a51f3af8b09eff270e6178eaf4874e5c5dcb50b2f826f87a71af524Transfer146560492022-04-25 20:57:49116 days 2 hrs ago0x152e69fb1377f40edbfa6033b5e961e0e540fd3d IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.00349481 53.70115289
0xa4b28c415a8a4867588ce541453c706e237c69056de20c70950f3a08302e9c88Approve146527652022-04-25 8:38:58116 days 15 hrs ago0x03004d7e8ff4438b74c316bc0d4a0b9c6d4573ea IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.0014014129.65267162
0x3a155fc9a47a57f35fc64357664eb83ea2e76a9b47d30779d65aaea39585cedfApprove146519342022-04-25 5:25:49116 days 18 hrs ago0x23e8cc177b98e5d3d89406e4c93d8c3782536a44 IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.001238 26.19516865
0xbdf370983cfa27d307a19f5c1be60b4925f0615d28afdd759cc6a411f6cb5e0bUnblock Bot146424322022-04-23 17:35:33118 days 6 hrs ago0x152e69fb1377f40edbfa6033b5e961e0e540fd3d IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.00073435 29.90307884
0x5917a7ecb2af7a55c2845b00df3a6ea0040a42c664c185240a9c9331fcffd24bSet Max Txn Amou...146424232022-04-23 17:34:30118 days 6 hrs ago0x152e69fb1377f40edbfa6033b5e961e0e540fd3d IN  0x874425cf1802535976c62d26fe84e45f31c3840b0 Ether0.00113314 39.16590808
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xad1a6227c503fdb39b7de3f55224225bd8f5bce04dd743be5efe2321314ff96c149523162022-06-12 21:16:4568 days 2 hrs ago 0x874425cf1802535976c62d26fe84e45f31c3840b0x152e69fb1377f40edbfa6033b5e961e0e540fd3d0.00395529 Ether
0xad1a6227c503fdb39b7de3f55224225bd8f5bce04dd743be5efe2321314ff96c149523162022-06-12 21:16:4568 days 2 hrs ago 0x874425cf1802535976c62d26fe84e45f31c3840bScam Inu: Deployer0.00395529 Ether
0xad1a6227c503fdb39b7de3f55224225bd8f5bce04dd743be5efe2321314ff96c149523162022-06-12 21:16:4568 days 2 hrs ago Uniswap V2: Router 2 0x874425cf1802535976c62d26fe84e45f31c3840b0.00791058 Ether
0x508c9f2abcb1b480a73250a5ebc65d3e2f62fcb31333ae6895a57b2a94faa172149523122022-06-12 21:15:5968 days 2 hrs ago Uniswap V2: Router 2 0x874425cf1802535976c62d26fe84e45f31c3840b0.00791058 Ether
0x4026ed6251dfbb0118d63b329dc3f4124bef075363eab986bac558e9272e1601149522952022-06-12 21:11:3468 days 2 hrs ago 0x874425cf1802535976c62d26fe84e45f31c3840b0x152e69fb1377f40edbfa6033b5e961e0e540fd3d0.00436688 Ether
0x4026ed6251dfbb0118d63b329dc3f4124bef075363eab986bac558e9272e1601149522952022-06-12 21:11:3468 days 2 hrs ago 0x874425cf1802535976c62d26fe84e45f31c3840bScam Inu: Deployer0.00436688 Ether
0x4026ed6251dfbb0118d63b329dc3f4124bef075363eab986bac558e9272e1601149522952022-06-12 21:11:3468 days 2 hrs ago Uniswap V2: Router 2 0x874425cf1802535976c62d26fe84e45f31c3840b0.00873377 Ether
0xb93425667e56fa259e93ce20744fd862895115d89cb203123fa15cda561cd0b1149505142022-06-12 13:56:2468 days 9 hrs ago Uniswap V2: Router 2 0x874425cf1802535976c62d26fe84e45f31c3840b0.00873377 Ether
0x9c4b70e22dd901f2e56b589f2f9705fb10009030eb458640c0bc4dd5cae0b8f6149504932022-06-12 13:51:2368 days 9 hrs ago 0x874425cf1802535976c62d26fe84e45f31c3840b0x152e69fb1377f40edbfa6033b5e961e0e540fd3d0.00490924 Ether
0x9c4b70e22dd901f2e56b589f2f9705fb10009030eb458640c0bc4dd5cae0b8f6149504932022-06-12 13:51:2368 days 9 hrs ago 0x874425cf1802535976c62d26fe84e45f31c3840bScam Inu: Deployer0.00490924 Ether
0x9c4b70e22dd901f2e56b589f2f9705fb10009030eb458640c0bc4dd5cae0b8f6149504932022-06-12 13:51:2368 days 9 hrs ago Uniswap V2: Router 2 0x874425cf1802535976c62d26fe84e45f31c3840b0.00981848 Ether
0x4f119116c0bba032c4c93997f342898df0133dad8e0f05cbe69530b4fcf93a02149468062022-06-11 22:38:4569 days 1 hr ago 0x874425cf1802535976c62d26fe84e45f31c3840b0x152e69fb1377f40edbfa6033b5e961e0e540fd3d0.00555918 Ether
0x4f119116c0bba032c4c93997f342898df0133dad8e0f05cbe69530b4fcf93a02149468062022-06-11 22:38:4569 days 1 hr ago 0x874425cf1802535976c62d26fe84e45f31c3840bScam Inu: Deployer0.00555918 Ether
0x4f119116c0bba032c4c93997f342898df0133dad8e0f05cbe69530b4fcf93a02149468062022-06-11 22:38:4569 days 1 hr ago Uniswap V2: Router 2 0x874425cf1802535976c62d26fe84e45f31c3840b0.01111836 Ether
0xde9839ff320eb852d1c066aff6a5bb2f1cc3368b596c44940cf7af760c06e654149467452022-06-11 22:25:1669 days 1 hr ago 0x874425cf1802535976c62d26fe84e45f31c3840b0x152e69fb1377f40edbfa6033b5e961e0e540fd3d0.00634716 Ether
0xde9839ff320eb852d1c066aff6a5bb2f1cc3368b596c44940cf7af760c06e654149467452022-06-11 22:25:1669 days 1 hr ago 0x874425cf1802535976c62d26fe84e45f31c3840bScam Inu: Deployer0.00634716 Ether
0xde9839ff320eb852d1c066aff6a5bb2f1cc3368b596c44940cf7af760c06e654149467452022-06-11 22:25:1669 days 1 hr ago Uniswap V2: Router 2 0x874425cf1802535976c62d26fe84e45f31c3840b0.01269432 Ether
0x7bc667b3ac1d394e6564136748f604271f72ed13e6448d56ffa040c9e8f24f38149458552022-06-11 18:56:2769 days 4 hrs ago 0x874425cf1802535976c62d26fe84e45f31c3840b0x152e69fb1377f40edbfa6033b5e961e0e540fd3d0.00720079 Ether
0x7bc667b3ac1d394e6564136748f604271f72ed13e6448d56ffa040c9e8f24f38149458552022-06-11 18:56:2769 days 4 hrs ago 0x874425cf1802535976c62d26fe84e45f31c3840bScam Inu: Deployer0.00720079 Ether
0x7bc667b3ac1d394e6564136748f604271f72ed13e6448d56ffa040c9e8f24f38149458552022-06-11 18:56:2769 days 4 hrs ago Uniswap V2: Router 2 0x874425cf1802535976c62d26fe84e45f31c3840b0.01440159 Ether
0xdf0419587e42ef01ce3ca5bdd83443db763c26a1d2f567664d2283aa5f2738fa146626992022-04-26 22:12:30115 days 1 hr ago 0x874425cf1802535976c62d26fe84e45f31c3840b0x152e69fb1377f40edbfa6033b5e961e0e540fd3d0.05795159 Ether
0xdf0419587e42ef01ce3ca5bdd83443db763c26a1d2f567664d2283aa5f2738fa146626992022-04-26 22:12:30115 days 1 hr ago 0x874425cf1802535976c62d26fe84e45f31c3840bScam Inu: Deployer0.05795159 Ether
0xe6307e2308722912840c2bc9d6405829d92eb22a06f63692b52767bf9372cc4b146626932022-04-26 22:10:20115 days 1 hr ago Uniswap V2: Router 2 0x874425cf1802535976c62d26fe84e45f31c3840b0.11590318 Ether
0xf423eab23aef7a69ef9cf248eb97e7d3538cfb25514bb2c63403db32ac328de6146626752022-04-26 22:07:11115 days 1 hr ago 0x874425cf1802535976c62d26fe84e45f31c3840b0x152e69fb1377f40edbfa6033b5e961e0e540fd3d0.00547 Ether
0xf423eab23aef7a69ef9cf248eb97e7d3538cfb25514bb2c63403db32ac328de6146626752022-04-26 22:07:11115 days 1 hr ago 0x874425cf1802535976c62d26fe84e45f31c3840bScam Inu: Deployer0.00547 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ScamHuntingInu

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-05
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

 }

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

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

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract ScamHuntingInu is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "Scam Hunting Inu";
    string private constant _symbol = "SHINU";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    //Buy Fee
    uint256 private _redisFeeOnBuy = 2;
    uint256 private _taxFeeOnBuy = 8;
    
    //Sell Fee
    uint256 private _redisFeeOnSell = 2;
    uint256 private _taxFeeOnSell = 8;
    
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    
    mapping(address => bool) public bots;
    mapping (address => bool) public preTrader;
    mapping(address => uint256) private cooldown;
    
    address payable private _developmentAddress = payable(0x7B052AC9f6AE8841f4d90055B9a9111A1d772d23);
    address payable private _marketingAddress = payable(0x152e69fb1377F40edbFA6033b5e961e0e540Fd3d);
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    uint256 public _maxTxAmount = 1000000 * 10**9; //0.3
    uint256 public _maxWalletSize = 50000000 * 10**9; //1
    uint256 public _swapTokensAtAmount = 1000000 * 10**9; //0.1

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        
        _rOwned[_msgSender()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        
        preTrader[owner()] = true;
        
       
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        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);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

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

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
    
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
        
        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner() && !preTrader[from] && !preTrader[to]) {
            
            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }
              
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
            
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        
        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
    
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
            
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        _developmentAddress.transfer(amount.div(2));
        _marketingAddress.transfer(amount.div(2));
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);

        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);

        return (rAmount, rTransferAmount, rFee);
    }

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

        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
    
        return (rSupply, tSupply);
    }
    
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
    
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    
    //Set MAx transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }
    
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
 
    function allowPreTrading(address account, bool allowed) public onlyOwner {
        require(preTrader[account] != allowed, "TOKEN: Already enabled.");
        preTrader[account] = allowed;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a76400006000196200001c91906200089b565b6000196200002b919062000822565b600655600260085560086009556002600a556008600b55600a54600c55600b54600d55600c54600e55600d54600f55737b052ac9f6ae8841f4d90055b9a9111a1d772d23601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073152e69fb1377f40edbfa6033b5e961e0e540fd3d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff02191690831515021790555066038d7ea4c6800060175566b1a2bc2ec5000060185566038d7ea4c680006019553480156200016757600080fd5b5060006200017a6200073c60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200022f6200073c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200030e57600080fd5b505afa15801562000323573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000349919062000784565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003ac57600080fd5b505afa158015620003c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e7919062000784565b6040518363ffffffff1660e01b815260040162000406929190620007d8565b602060405180830381600087803b1580156200042157600080fd5b505af115801562000436573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045c919062000784565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004b26200074460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000620006656200074460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006c66200073c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200072d919062000805565b60405180910390a35062000950565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200077e8162000936565b92915050565b6000602082840312156200079d576200079c62000931565b5b6000620007ad848285016200076d565b91505092915050565b620007c1816200085d565b82525050565b620007d28162000891565b82525050565b6000604082019050620007ef6000830185620007b6565b620007fe6020830184620007b6565b9392505050565b60006020820190506200081c6000830184620007c7565b92915050565b60006200082f8262000891565b91506200083c8362000891565b925082821015620008525762000851620008d3565b5b828203905092915050565b60006200086a8262000871565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620008a88262000891565b9150620008b58362000891565b925082620008c857620008c762000902565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b62000941816200085d565b81146200094d57600080fd5b50565b61417180620009606000396000f3fe6080604052600436106101db5760003560e01c806374010ece11610102578063a9059cbb11610095578063c492f04611610064578063c492f04614610690578063dd62ed3e146106b9578063ea1644d5146106f6578063f2fde38b1461071f576101e2565b8063a9059cbb146105c2578063bdd795ef146105ff578063bfd792841461063c578063c3c8cd8014610679576101e2565b80638f9a55c0116100d15780638f9a55c01461051a57806395d89b411461054557806398a5c31514610570578063a2a957bb14610599576101e2565b806374010ece146104725780637d1db4a51461049b5780638da5cb5b146104c65780638f70ccf7146104f1576101e2565b80632fd689e31161017a5780636d8aa8f8116101495780636d8aa8f8146103de5780636fc3eaec1461040757806370a082311461041e578063715018a61461045b576101e2565b80632fd689e314610334578063313ce5671461035f57806349bd5a5e1461038a5780636b999053146103b5576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632f9c45691461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e600480360381019061020991906131c8565b610748565b005b34801561021c57600080fd5b50610225610872565b6040516102329190613648565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190613128565b6108af565b60405161026f9190613612565b60405180910390f35b34801561028457600080fd5b5061028d6108cd565b60405161029a919061362d565b60405180910390f35b3480156102af57600080fd5b506102b86108f3565b6040516102c5919061384a565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f09190613095565b610903565b6040516103029190613612565b60405180910390f35b34801561031757600080fd5b50610332600480360381019061032d91906130e8565b6109dc565b005b34801561034057600080fd5b50610349610b5f565b604051610356919061384a565b60405180910390f35b34801561036b57600080fd5b50610374610b65565b60405161038191906138bf565b60405180910390f35b34801561039657600080fd5b5061039f610b6e565b6040516103ac91906135f7565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d79190612ffb565b610b94565b005b3480156103ea57600080fd5b5061040560048036038101906104009190613211565b610c84565b005b34801561041357600080fd5b5061041c610d35565b005b34801561042a57600080fd5b5061044560048036038101906104409190612ffb565b610e06565b604051610452919061384a565b60405180910390f35b34801561046757600080fd5b50610470610e57565b005b34801561047e57600080fd5b506104996004803603810190610494919061323e565b610faa565b005b3480156104a757600080fd5b506104b0611049565b6040516104bd919061384a565b60405180910390f35b3480156104d257600080fd5b506104db61104f565b6040516104e891906135f7565b60405180910390f35b3480156104fd57600080fd5b5061051860048036038101906105139190613211565b611078565b005b34801561052657600080fd5b5061052f61112a565b60405161053c919061384a565b60405180910390f35b34801561055157600080fd5b5061055a611130565b6040516105679190613648565b60405180910390f35b34801561057c57600080fd5b506105976004803603810190610592919061323e565b61116d565b005b3480156105a557600080fd5b506105c060048036038101906105bb919061326b565b61120c565b005b3480156105ce57600080fd5b506105e960048036038101906105e49190613128565b6112c3565b6040516105f69190613612565b60405180910390f35b34801561060b57600080fd5b5061062660048036038101906106219190612ffb565b6112e1565b6040516106339190613612565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e9190612ffb565b611301565b6040516106709190613612565b60405180910390f35b34801561068557600080fd5b5061068e611321565b005b34801561069c57600080fd5b506106b760048036038101906106b29190613168565b6113fa565b005b3480156106c557600080fd5b506106e060048036038101906106db9190613055565b611534565b6040516106ed919061384a565b60405180910390f35b34801561070257600080fd5b5061071d6004803603810190610718919061323e565b6115bb565b005b34801561072b57600080fd5b5061074660048036038101906107419190612ffb565b61165a565b005b61075061181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d4906137aa565b60405180910390fd5b60005b815181101561086e5760016010600084848151811061080257610801613c3d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061086690613b96565b9150506107e0565b5050565b60606040518060400160405280601081526020017f5363616d2048756e74696e6720496e7500000000000000000000000000000000815250905090565b60006108c36108bc61181c565b8484611824565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006109108484846119ef565b6109d18461091c61181c565b6109cc8560405180606001604052806028815260200161411460289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061098261181c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123379092919063ffffffff16565b611824565b600190509392505050565b6109e461181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a68906137aa565b60405180910390fd5b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afb9061376a565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b9c61181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c20906137aa565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c8c61181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d10906137aa565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7661181c565b73ffffffffffffffffffffffffffffffffffffffff161480610dec5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dd461181c565b73ffffffffffffffffffffffffffffffffffffffff16145b610df557600080fd5b6000479050610e038161239b565b50565b6000610e50600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612496565b9050919050565b610e5f61181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee3906137aa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fb261181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611036906137aa565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61108061181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461110d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611104906137aa565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600581526020017f5348494e55000000000000000000000000000000000000000000000000000000815250905090565b61117561181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f9906137aa565b60405180910390fd5b8060198190555050565b61121461181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611298906137aa565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006112d76112d061181c565b84846119ef565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661136261181c565b73ffffffffffffffffffffffffffffffffffffffff1614806113d85750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113c061181c565b73ffffffffffffffffffffffffffffffffffffffff16145b6113e157600080fd5b60006113ec30610e06565b90506113f781612504565b50565b61140261181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461148f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611486906137aa565b60405180910390fd5b60005b8383905081101561152e5781600560008686858181106114b5576114b4613c3d565b5b90506020020160208101906114ca9190612ffb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061152690613b96565b915050611492565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115c361181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611650576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611647906137aa565b60405180910390fd5b8060188190555050565b61166261181c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e6906137aa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561175f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611756906136ea565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188b9061382a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fb9061370a565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119e2919061384a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a56906137ea565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac69061366a565b60405180910390fd5b60008111611b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b09906137ca565b60405180910390fd5b611b1a61104f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b885750611b5861104f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bde5750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c345750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561203657601660149054906101000a900460ff16611cda57601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd09061368a565b60405180910390fd5b5b601754811115611d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d16906136ca565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611dc35750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611e02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df99061372a565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611eaf5760185481611e6484610e06565b611e6e9190613980565b10611eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea59061380a565b60405180910390fd5b5b6000611eba30610e06565b9050600060195482101590506017548210611ed55760175491505b808015611eef5750601660159054906101000a900460ff16155b8015611f495750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f5f575060168054906101000a900460ff165b8015611fb55750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561200b5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120335761201982612504565b60004790506000811115612031576120304761239b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120dd5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121905750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561218f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561219e5760009050612325565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122495750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561226157600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561230c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561232457600a54600c81905550600b54600d819055505b5b6123318484848461278c565b50505050565b600083831115829061237f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123769190613648565b60405180910390fd5b506000838561238e9190613a61565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6123eb6002846127b990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612416573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124676002846127b990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612492573d6000803e3d6000fd5b5050565b60006006548211156124dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d4906136aa565b60405180910390fd5b60006124e7612803565b90506124fc81846127b990919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561253c5761253b613c6c565b5b60405190808252806020026020018201604052801561256a5781602001602082028036833780820191505090505b509050308160008151811061258257612581613c3d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561262457600080fd5b505afa158015612638573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265c9190613028565b816001815181106126705761266f613c3d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126d730601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611824565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161273b959493929190613865565b600060405180830381600087803b15801561275557600080fd5b505af1158015612769573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b8061279a5761279961282e565b5b6127a5848484612871565b806127b3576127b2612a3c565b5b50505050565b60006127fb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a50565b905092915050565b6000806000612810612ab3565b9150915061282781836127b990919063ffffffff16565b9250505090565b6000600c5414801561284257506000600d54145b1561284c5761286f565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061288387612b12565b9550955095509550955095506128e186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b7a90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061297685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129c281612c22565b6129cc8483612cdf565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612a29919061384a565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008083118290612a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8e9190613648565b60405180910390fd5b5060008385612aa691906139d6565b9050809150509392505050565b600080600060065490506000670de0b6b3a76400009050612ae7670de0b6b3a76400006006546127b990919063ffffffff16565b821015612b0557600654670de0b6b3a7640000935093505050612b0e565b81819350935050505b9091565b6000806000806000806000806000612b2f8a600c54600d54612d19565b9250925092506000612b3f612803565b90506000806000612b528e878787612daf565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612bbc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612337565b905092915050565b6000808284612bd39190613980565b905083811015612c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0f9061374a565b60405180910390fd5b8091505092915050565b6000612c2c612803565b90506000612c438284612e3890919063ffffffff16565b9050612c9781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bc490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612cf482600654612b7a90919063ffffffff16565b600681905550612d0f81600754612bc490919063ffffffff16565b6007819055505050565b600080600080612d456064612d37888a612e3890919063ffffffff16565b6127b990919063ffffffff16565b90506000612d6f6064612d61888b612e3890919063ffffffff16565b6127b990919063ffffffff16565b90506000612d9882612d8a858c612b7a90919063ffffffff16565b612b7a90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612dc88589612e3890919063ffffffff16565b90506000612ddf8689612e3890919063ffffffff16565b90506000612df68789612e3890919063ffffffff16565b90506000612e1f82612e118587612b7a90919063ffffffff16565b612b7a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612e4b5760009050612ead565b60008284612e599190613a07565b9050828482612e6891906139d6565b14612ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9f9061378a565b60405180910390fd5b809150505b92915050565b6000612ec6612ec1846138ff565b6138da565b90508083825260208201905082856020860282011115612ee957612ee8613ca5565b5b60005b85811015612f195781612eff8882612f23565b845260208401935060208301925050600181019050612eec565b5050509392505050565b600081359050612f32816140ce565b92915050565b600081519050612f47816140ce565b92915050565b60008083601f840112612f6357612f62613ca0565b5b8235905067ffffffffffffffff811115612f8057612f7f613c9b565b5b602083019150836020820283011115612f9c57612f9b613ca5565b5b9250929050565b600082601f830112612fb857612fb7613ca0565b5b8135612fc8848260208601612eb3565b91505092915050565b600081359050612fe0816140e5565b92915050565b600081359050612ff5816140fc565b92915050565b60006020828403121561301157613010613caf565b5b600061301f84828501612f23565b91505092915050565b60006020828403121561303e5761303d613caf565b5b600061304c84828501612f38565b91505092915050565b6000806040838503121561306c5761306b613caf565b5b600061307a85828601612f23565b925050602061308b85828601612f23565b9150509250929050565b6000806000606084860312156130ae576130ad613caf565b5b60006130bc86828701612f23565b93505060206130cd86828701612f23565b92505060406130de86828701612fe6565b9150509250925092565b600080604083850312156130ff576130fe613caf565b5b600061310d85828601612f23565b925050602061311e85828601612fd1565b9150509250929050565b6000806040838503121561313f5761313e613caf565b5b600061314d85828601612f23565b925050602061315e85828601612fe6565b9150509250929050565b60008060006040848603121561318157613180613caf565b5b600084013567ffffffffffffffff81111561319f5761319e613caa565b5b6131ab86828701612f4d565b935093505060206131be86828701612fd1565b9150509250925092565b6000602082840312156131de576131dd613caf565b5b600082013567ffffffffffffffff8111156131fc576131fb613caa565b5b61320884828501612fa3565b91505092915050565b60006020828403121561322757613226613caf565b5b600061323584828501612fd1565b91505092915050565b60006020828403121561325457613253613caf565b5b600061326284828501612fe6565b91505092915050565b6000806000806080858703121561328557613284613caf565b5b600061329387828801612fe6565b94505060206132a487828801612fe6565b93505060406132b587828801612fe6565b92505060606132c687828801612fe6565b91505092959194509250565b60006132de83836132ea565b60208301905092915050565b6132f381613a95565b82525050565b61330281613a95565b82525050565b60006133138261393b565b61331d818561395e565b93506133288361392b565b8060005b8381101561335957815161334088826132d2565b975061334b83613951565b92505060018101905061332c565b5085935050505092915050565b61336f81613aa7565b82525050565b61337e81613aea565b82525050565b61338d81613afc565b82525050565b600061339e82613946565b6133a8818561396f565b93506133b8818560208601613b32565b6133c181613cb4565b840191505092915050565b60006133d960238361396f565b91506133e482613cc5565b604082019050919050565b60006133fc603f8361396f565b915061340782613d14565b604082019050919050565b600061341f602a8361396f565b915061342a82613d63565b604082019050919050565b6000613442601c8361396f565b915061344d82613db2565b602082019050919050565b600061346560268361396f565b915061347082613ddb565b604082019050919050565b600061348860228361396f565b915061349382613e2a565b604082019050919050565b60006134ab60238361396f565b91506134b682613e79565b604082019050919050565b60006134ce601b8361396f565b91506134d982613ec8565b602082019050919050565b60006134f160178361396f565b91506134fc82613ef1565b602082019050919050565b600061351460218361396f565b915061351f82613f1a565b604082019050919050565b600061353760208361396f565b915061354282613f69565b602082019050919050565b600061355a60298361396f565b915061356582613f92565b604082019050919050565b600061357d60258361396f565b915061358882613fe1565b604082019050919050565b60006135a060238361396f565b91506135ab82614030565b604082019050919050565b60006135c360248361396f565b91506135ce8261407f565b604082019050919050565b6135e281613ad3565b82525050565b6135f181613add565b82525050565b600060208201905061360c60008301846132f9565b92915050565b60006020820190506136276000830184613366565b92915050565b60006020820190506136426000830184613375565b92915050565b600060208201905081810360008301526136628184613393565b905092915050565b60006020820190508181036000830152613683816133cc565b9050919050565b600060208201905081810360008301526136a3816133ef565b9050919050565b600060208201905081810360008301526136c381613412565b9050919050565b600060208201905081810360008301526136e381613435565b9050919050565b6000602082019050818103600083015261370381613458565b9050919050565b600060208201905081810360008301526137238161347b565b9050919050565b600060208201905081810360008301526137438161349e565b9050919050565b60006020820190508181036000830152613763816134c1565b9050919050565b60006020820190508181036000830152613783816134e4565b9050919050565b600060208201905081810360008301526137a381613507565b9050919050565b600060208201905081810360008301526137c38161352a565b9050919050565b600060208201905081810360008301526137e38161354d565b9050919050565b6000602082019050818103600083015261380381613570565b9050919050565b6000602082019050818103600083015261382381613593565b9050919050565b60006020820190508181036000830152613843816135b6565b9050919050565b600060208201905061385f60008301846135d9565b92915050565b600060a08201905061387a60008301886135d9565b6138876020830187613384565b81810360408301526138998186613308565b90506138a860608301856132f9565b6138b560808301846135d9565b9695505050505050565b60006020820190506138d460008301846135e8565b92915050565b60006138e46138f5565b90506138f08282613b65565b919050565b6000604051905090565b600067ffffffffffffffff82111561391a57613919613c6c565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061398b82613ad3565b915061399683613ad3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156139cb576139ca613bdf565b5b828201905092915050565b60006139e182613ad3565b91506139ec83613ad3565b9250826139fc576139fb613c0e565b5b828204905092915050565b6000613a1282613ad3565b9150613a1d83613ad3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a5657613a55613bdf565b5b828202905092915050565b6000613a6c82613ad3565b9150613a7783613ad3565b925082821015613a8a57613a89613bdf565b5b828203905092915050565b6000613aa082613ab3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613af582613b0e565b9050919050565b6000613b0782613ad3565b9050919050565b6000613b1982613b20565b9050919050565b6000613b2b82613ab3565b9050919050565b60005b83811015613b50578082015181840152602081019050613b35565b83811115613b5f576000848401525b50505050565b613b6e82613cb4565b810181811067ffffffffffffffff82111715613b8d57613b8c613c6c565b5b80604052505050565b6000613ba182613ad3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613bd457613bd3613bdf565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6140d781613a95565b81146140e257600080fd5b50565b6140ee81613aa7565b81146140f957600080fd5b50565b61410581613ad3565b811461411057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d63679ac596e97d5a73e8b75bc8b29c059604dc524d56d48c917866dc31bf84164736f6c63430008070033

Deployed ByteCode Sourcemap

4082:14187:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13195:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6814:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7739:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5562:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7091:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7940:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18070:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5877:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7000:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5610:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13372:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17444:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12952:235;;;;;;;;;;;;;:::i;:::-;;7194:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1561:148;;;;;;;;;;;;;:::i;:::-;;17584:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5760:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1347:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12599:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5818:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6905:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17249:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16896:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7340:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5244:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5201:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12708:236;;;;;;;;;;;;;:::i;:::-;;17827:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7547:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17704:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1721:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13195:169;1484:12;:10;:12::i;:::-;1474:22;;:6;;;;;;;;;;:22;;;1466:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13271:9:::1;13266:91;13290:5;:12;13286:1;:16;13266:91;;;13341:4;13324;:14;13329:5;13335:1;13329:8;;;;;;;;:::i;:::-;;;;;;;;13324:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13304:3;;;;;:::i;:::-;;;;13266:91;;;;13195:169:::0;:::o;6814:83::-;6851:13;6884:5;;;;;;;;;;;;;;;;;6877:12;;6814:83;:::o;7739:193::-;7841:4;7863:39;7872:12;:10;:12::i;:::-;7886:7;7895:6;7863:8;:39::i;:::-;7920:4;7913:11;;7739:193;;;;:::o;5562:41::-;;;;;;;;;;;;;:::o;7091:95::-;7144:7;4648:18;7164:14;;7091:95;:::o;7940:446::-;8072:4;8089:36;8099:6;8107:9;8118:6;8089:9;:36::i;:::-;8136:220;8159:6;8180:12;:10;:12::i;:::-;8207:138;8263:6;8207:138;;;;;;;;;;;;;;;;;:11;:19;8219:6;8207:19;;;;;;;;;;;;;;;:33;8227:12;:10;:12::i;:::-;8207:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8136:8;:220::i;:::-;8374:4;8367:11;;7940:446;;;;;:::o;18070:196::-;1484:12;:10;:12::i;:::-;1474:22;;:6;;;;;;;;;;:22;;;1466:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18184:7:::1;18162:29;;:9;:18;18172:7;18162:18;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;18154:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;18251:7;18230:9;:18;18240:7;18230:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18070:196:::0;;:::o;5877:52::-;;;;:::o;7000:83::-;7041:5;4322:1;7059:16;;7000:83;:::o;5610:28::-;;;;;;;;;;;;;:::o;13372:92::-;1484:12;:10;:12::i;:::-;1474:22;;:6;;;;;;;;;;:22;;;1466:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13451:5:::1;13436:4;:12;13441:6;13436:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13372:92:::0;:::o;17444:101::-;1484:12;:10;:12::i;:::-;1474:22;;:6;;;;;;;;;;:22;;;1466:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17525:12:::1;17511:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;17444:101:::0;:::o;12952:235::-;13018:19;;;;;;;;;;;13002:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13057:17;;;;;;;;;;;13041:33;;:12;:10;:12::i;:::-;:33;;;13002:72;12994:81;;;;;;13086:26;13115:21;13086:50;;13147:32;13160:18;13147:12;:32::i;:::-;12983:204;12952:235::o;7194:138::-;7260:7;7287:37;7307:7;:16;7315:7;7307:16;;;;;;;;;;;;;;;;7287:19;:37::i;:::-;7280:44;;7194:138;;;:::o;1561:148::-;1484:12;:10;:12::i;:::-;1474:22;;:6;;;;;;;;;;:22;;;1466:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1668:1:::1;1631:40;;1652:6;::::0;::::1;;;;;;;;1631:40;;;;;;;;;;;;1699:1;1682:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1561:148::o:0;17584:108::-;1484:12;:10;:12::i;:::-;1474:22;;:6;;;;;;;;;;:22;;;1466:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17673:11:::1;17658:12;:26;;;;17584:108:::0;:::o;5760:45::-;;;;:::o;1347:79::-;1385:7;1412:6;;;;;;;;;;;1405:13;;1347:79;:::o;12599:101::-;1484:12;:10;:12::i;:::-;1474:22;;:6;;;;;;;;;;:22;;;1466:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12680:12:::1;12666:11;;:26;;;;;;;;;;;;;;;;;;12599:101:::0;:::o;5818:48::-;;;;:::o;6905:87::-;6944:13;6977:7;;;;;;;;;;;;;;;;;6970:14;;6905:87;:::o;17249:139::-;1484:12;:10;:12::i;:::-;1474:22;;:6;;;;;;;;;;:22;;;1466:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17362:18:::1;17340:19;:40;;;;17249:139:::0;:::o;16896:301::-;1484:12;:10;:12::i;:::-;1474:22;;:6;;;;;;;;;;:22;;;1466:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17047:13:::1;17030:14;:30;;;;17089:14;17071:15;:32;;;;17139:11;17124:12;:26;;;;17177:12;17161:13;:28;;;;16896:301:::0;;;;:::o;7340:199::-;7445:4;7467:42;7477:12;:10;:12::i;:::-;7491:9;7502:6;7467:9;:42::i;:::-;7527:4;7520:11;;7340:199;;;;:::o;5244:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;5201:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12708:236::-;12774:19;;;;;;;;;;;12758:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12813:17;;;;;;;;;;;12797:33;;:12;:10;:12::i;:::-;:33;;;12758:72;12750:81;;;;;;12842:23;12868:24;12886:4;12868:9;:24::i;:::-;12842:50;;12903:33;12920:15;12903:16;:33::i;:::-;12739:205;12708:236::o;17827:234::-;1484:12;:10;:12::i;:::-;1474:22;;:6;;;;;;;;;;:22;;;1466:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17944:9:::1;17940:114;17963:8;;:15;;17959:1;:19;17940:114;;;18034:8;18000:18;:31;18019:8;;18028:1;18019:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18000:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17980:3;;;;;:::i;:::-;;;;17940:114;;;;17827:234:::0;;;:::o;7547:184::-;7664:7;7696:11;:18;7708:5;7696:18;;;;;;;;;;;;;;;:27;7715:7;7696:27;;;;;;;;;;;;;;;;7689:34;;7547:184;;;;:::o;17704:115::-;1484:12;:10;:12::i;:::-;1474:22;;:6;;;;;;;;;;:22;;;1466:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17798:13:::1;17781:14;:30;;;;17704:115:::0;:::o;1721:244::-;1484:12;:10;:12::i;:::-;1474:22;;:6;;;;;;;;;;:22;;;1466:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1830:1:::1;1810:22;;:8;:22;;;;1802:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1920:8;1891:38;;1912:6;::::0;::::1;;;;;;;;1891:38;;;;;;;;;;;;1949:8;1940:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1721:244:::0;:::o;103:98::-;156:7;183:10;176:17;;103:98;:::o;9089:369::-;9233:1;9216:19;;:5;:19;;;;9208:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9314:1;9295:21;;:7;:21;;;;9287:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9396:6;9366:11;:18;9378:5;9366:18;;;;;;;;;;;;;;;:27;9385:7;9366:27;;;;;;;;;;;;;;;:36;;;;9434:7;9418:32;;9427:5;9418:32;;;9443:6;9418:32;;;;;;:::i;:::-;;;;;;;;9089:369;;;:::o;9466:2466::-;9604:1;9588:18;;:4;:18;;;;9580:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9681:1;9667:16;;:2;:16;;;;9659:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9751:1;9742:6;:10;9734:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9823:7;:5;:7::i;:::-;9815:15;;:4;:15;;;;:32;;;;;9840:7;:5;:7::i;:::-;9834:13;;:2;:13;;;;9815:32;:52;;;;;9852:9;:15;9862:4;9852:15;;;;;;;;;;;;;;;;;;;;;;;;;9851:16;9815:52;:70;;;;;9872:9;:13;9882:2;9872:13;;;;;;;;;;;;;;;;;;;;;;;;;9871:14;9815:70;9811:1359;;;9954:11;;;;;;;;;;;9949:144;;9994:9;:15;10004:4;9994:15;;;;;;;;;;;;;;;;;;;;;;;;;9986:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9949:144;10141:12;;10131:6;:22;;10123:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10210:4;:10;10215:4;10210:10;;;;;;;;;;;;;;;;;;;;;;;;;10209:11;:24;;;;;10225:4;:8;10230:2;10225:8;;;;;;;;;;;;;;;;;;;;;;;;;10224:9;10209:24;10201:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10311:13;;;;;;;;;;;10305:19;;:2;:19;;;10302:146;;10378:14;;10369:6;10353:13;10363:2;10353:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10345:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10302:146;10476:28;10507:24;10525:4;10507:9;:24::i;:::-;10476:55;;10546:12;10585:19;;10561:20;:43;;10546:58;;10648:12;;10624:20;:36;10621:124;;10717:12;;10694:35;;10621:124;10777:7;:18;;;;;10789:6;;;;;;;;;;;10788:7;10777:18;:43;;;;;10807:13;;;;;;;;;;;10799:21;;:4;:21;;;;10777:43;:58;;;;;10824:11;;;;;;;;;;10777:58;:87;;;;;10840:18;:24;10859:4;10840:24;;;;;;;;;;;;;;;;;;;;;;;;;10839:25;10777:87;:114;;;;;10869:18;:22;10888:2;10869:22;;;;;;;;;;;;;;;;;;;;;;;;;10868:23;10777:114;10773:386;;;10912:38;10929:20;10912:16;:38::i;:::-;10969:26;10998:21;10969:50;;11063:1;11042:18;:22;11038:106;;;11089:35;11102:21;11089:12;:35::i;:::-;11038:106;10893:266;10773:386;9887:1283;;9811:1359;11190:12;11205:4;11190:19;;11254:18;:24;11273:4;11254:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11282:18;:22;11301:2;11282:22;;;;;;;;;;;;;;;;;;;;;;;;;11254:50;11253:102;;;;11318:13;;;;;;;;;;;11310:21;;:4;:21;;;;:44;;;;;11341:13;;;;;;;;;;;11335:19;;:2;:19;;;;11310:44;11253:102;11249:622;;;11382:5;11372:15;;11249:622;;;11477:13;;;;;;;;;;;11469:21;;:4;:21;;;:55;;;;;11508:15;;;;;;;;;;;11494:30;;:2;:30;;;;11469:55;11466:162;;;11557:14;;11545:9;:26;;;;11600:12;;11590:7;:22;;;;11466:162;11691:13;;;;;;;;;;;11685:19;;:2;:19;;;:55;;;;;11724:15;;;;;;;;;;;11708:32;;:4;:32;;;;11685:55;11681:165;;;11773:15;;11761:9;:27;;;;11817:13;;11807:7;:23;;;;11681:165;11249:622;11883:41;11898:4;11904:2;11908:6;11916:7;11883:14;:41::i;:::-;9569:2363;9466:2466;;;:::o;2333:224::-;2453:7;2486:1;2481;:6;;2489:12;2473:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2513:9;2529:1;2525;:5;;;;:::i;:::-;2513:17;;2548:1;2541:8;;;2333:224;;;;;:::o;12431:160::-;12488:19;;;;;;;;;;;:28;;:43;12517:13;12528:1;12517:6;:10;;:13;;;;:::i;:::-;12488:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12542:17;;;;;;;;;;;:26;;:41;12569:13;12580:1;12569:6;:10;;:13;;;;:::i;:::-;12542:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12431:160;:::o;8394:323::-;8489:7;8547;;8536;:18;;8514:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8635:19;8657:10;:8;:10::i;:::-;8635:32;;8685:24;8697:11;8685:7;:11;;:24;;;;:::i;:::-;8678:31;;;8394:323;;;:::o;11940:483::-;6038:4;6029:6;;:13;;;;;;;;;;;;;;;;;;12018:21:::1;12056:1;12042:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12018:40;;12087:4;12069;12074:1;12069:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12113:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12103:4;12108:1;12103:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12146:62;12163:4;12178:15;;;;;;;;;;;12196:11;12146:8;:62::i;:::-;12219:15;;;;;;;;;;;:66;;;12300:11;12326:1;12342:4;12369;12389:15;12219:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12007:416;6074:5:::0;6065:6;;:14;;;;;;;;;;;;;;;;;;11940:483;:::o;13472:282::-;13628:7;13623:28;;13637:14;:12;:14::i;:::-;13623:28;13662:44;13680:6;13688:9;13699:6;13662:17;:44::i;:::-;13722:7;13717:29;;13731:15;:13;:15::i;:::-;13717:29;13472:282;;;;:::o;2819:132::-;2877:7;2904:39;2908:1;2911;2904:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2897:46;;2819:132;;;;:::o;16447:166::-;16489:7;16510:15;16527;16546:19;:17;:19::i;:::-;16509:56;;;;16585:20;16597:7;16585;:11;;:20;;;;:::i;:::-;16578:27;;;;16447:166;:::o;8725:231::-;8785:1;8772:9;;:14;:30;;;;;8801:1;8790:7;;:12;8772:30;8768:43;;;8804:7;;8768:43;8847:9;;8827:17;:29;;;;8885:7;;8867:15;:25;;;;8925:1;8913:9;:13;;;;8947:1;8937:7;:11;;;;8725:231;:::o;13762:610::-;13909:15;13939:23;13977:12;14004:23;14042:12;14069:13;14096:19;14107:7;14096:10;:19::i;:::-;13894:221;;;;;;;;;;;;14144:28;14164:7;14144;:15;14152:6;14144:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14126:7;:15;14134:6;14126:15;;;;;;;;;;;;;;;:46;;;;14204:39;14227:15;14204:7;:18;14212:9;14204:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14183:7;:18;14191:9;14183:18;;;;;;;;;;;;;;;:60;;;;14254:16;14264:5;14254:9;:16::i;:::-;14281:23;14293:4;14299;14281:11;:23::i;:::-;14337:9;14320:44;;14329:6;14320:44;;;14348:15;14320:44;;;;;;:::i;:::-;;;;;;;;13883:489;;;;;;13762:610;;;:::o;8964:117::-;9020:17;;9008:9;:29;;;;9058:15;;9048:7;:25;;;;8964:117::o;2959:223::-;3079:7;3111:1;3107;:5;3114:12;3099:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3138:9;3154:1;3150;:5;;;;:::i;:::-;3138:17;;3173:1;3166:8;;;2959:223;;;;;:::o;16621:263::-;16672:7;16681;16701:15;16719:7;;16701:25;;16737:15;4648:18;16737:25;;16787:20;4648:18;16787:7;;:11;;:20;;;;:::i;:::-;16777:7;:30;16773:61;;;16817:7;;4648:18;16809:25;;;;;;;;16773:61;16859:7;16868;16851:25;;;;;;16621:263;;;:::o;14791:625::-;14891:7;14913;14935;14957;14979;15001;15037:23;15062:12;15076:13;15106:40;15118:7;15127:9;;15138:7;;15106:11;:40::i;:::-;15036:110;;;;;;15157:19;15179:10;:8;:10::i;:::-;15157:32;;15201:15;15218:23;15243:12;15272:46;15284:7;15293:4;15299:5;15306:11;15272;:46::i;:::-;15200:118;;;;;;15347:7;15356:15;15373:4;15379:15;15396:4;15402:5;15339:69;;;;;;;;;;;;;;;;;;;14791:625;;;;;;;:::o;2189:136::-;2247:7;2274:43;2278:1;2281;2274:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2267:50;;2189:136;;;;:::o;2002:179::-;2060:7;2080:9;2096:1;2092;:5;;;;:::i;:::-;2080:17;;2121:1;2116;:6;;2108:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2172:1;2165:8;;;2002:179;;;;:::o;14380:211::-;14433:19;14455:10;:8;:10::i;:::-;14433:32;;14476:13;14492:22;14502:11;14492:5;:9;;:22;;;;:::i;:::-;14476:38;;14550:33;14577:5;14550:7;:22;14566:4;14550:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14525:7;:22;14541:4;14525:22;;;;;;;;;;;;;;;:58;;;;14422:169;;14380:211;:::o;14599:147::-;14677:17;14689:4;14677:7;;:11;;:17;;;;:::i;:::-;14667:7;:27;;;;14718:20;14733:4;14718:10;;:14;;:20;;;;:::i;:::-;14705:10;:33;;;;14599:147;;:::o;15424:471::-;15593:7;15615;15637;15672:12;15687:30;15713:3;15687:21;15699:8;15687:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15672:45;;15728:13;15744:28;15768:3;15744:19;15756:6;15744:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15728:44;;15783:23;15809:28;15831:5;15809:17;15821:4;15809:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15783:54;;15858:15;15875:4;15881:5;15850:37;;;;;;;;;15424:471;;;;;;;:::o;15903:536::-;16097:7;16119;16141;16176:15;16194:24;16206:11;16194:7;:11;;:24;;;;:::i;:::-;16176:42;;16229:12;16244:21;16253:11;16244:4;:8;;:21;;;;:::i;:::-;16229:36;;16276:13;16292:22;16302:11;16292:5;:9;;:22;;;;:::i;:::-;16276:38;;16325:23;16351:28;16373:5;16351:17;16363:4;16351:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16325:54;;16400:7;16409:15;16426:4;16392:39;;;;;;;;;;15903:536;;;;;;;;:::o;2565:246::-;2623:7;2652:1;2647;:6;2643:47;;;2677:1;2670:8;;;;2643:47;2700:9;2716:1;2712;:5;;;;:::i;:::-;2700:17;;2745:1;2740;2736;:5;;;;:::i;:::-;:10;2728:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2802:1;2795:8;;;2565:246;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:568::-;1136:8;1146:6;1196:3;1189:4;1181:6;1177:17;1173:27;1163:122;;1204:79;;:::i;:::-;1163:122;1317:6;1304:20;1294:30;;1347:18;1339:6;1336:30;1333:117;;;1369:79;;:::i;:::-;1333:117;1483:4;1475:6;1471:17;1459:29;;1537:3;1529:4;1521:6;1517:17;1507:8;1503:32;1500:41;1497:128;;;1544:79;;:::i;:::-;1497:128;1063:568;;;;;:::o;1654:370::-;1725:5;1774:3;1767:4;1759:6;1755:17;1751:27;1741:122;;1782:79;;:::i;:::-;1741:122;1899:6;1886:20;1924:94;2014:3;2006:6;1999:4;1991:6;1987:17;1924:94;:::i;:::-;1915:103;;1731:293;1654:370;;;;:::o;2030:133::-;2073:5;2111:6;2098:20;2089:29;;2127:30;2151:5;2127:30;:::i;:::-;2030:133;;;;:::o;2169:139::-;2215:5;2253:6;2240:20;2231:29;;2269:33;2296:5;2269:33;:::i;:::-;2169:139;;;;:::o;2314:329::-;2373:6;2422:2;2410:9;2401:7;2397:23;2393:32;2390:119;;;2428:79;;:::i;:::-;2390:119;2548:1;2573:53;2618:7;2609:6;2598:9;2594:22;2573:53;:::i;:::-;2563:63;;2519:117;2314:329;;;;:::o;2649:351::-;2719:6;2768:2;2756:9;2747:7;2743:23;2739:32;2736:119;;;2774:79;;:::i;:::-;2736:119;2894:1;2919:64;2975:7;2966:6;2955:9;2951:22;2919:64;:::i;:::-;2909:74;;2865:128;2649:351;;;;:::o;3006:474::-;3074:6;3082;3131:2;3119:9;3110:7;3106:23;3102:32;3099:119;;;3137:79;;:::i;:::-;3099:119;3257:1;3282:53;3327:7;3318:6;3307:9;3303:22;3282:53;:::i;:::-;3272:63;;3228:117;3384:2;3410:53;3455:7;3446:6;3435:9;3431:22;3410:53;:::i;:::-;3400:63;;3355:118;3006:474;;;;;:::o;3486:619::-;3563:6;3571;3579;3628:2;3616:9;3607:7;3603:23;3599:32;3596:119;;;3634:79;;:::i;:::-;3596:119;3754:1;3779:53;3824:7;3815:6;3804:9;3800:22;3779:53;:::i;:::-;3769:63;;3725:117;3881:2;3907:53;3952:7;3943:6;3932:9;3928:22;3907:53;:::i;:::-;3897:63;;3852:118;4009:2;4035:53;4080:7;4071:6;4060:9;4056:22;4035:53;:::i;:::-;4025:63;;3980:118;3486:619;;;;;:::o;4111:468::-;4176:6;4184;4233:2;4221:9;4212:7;4208:23;4204:32;4201:119;;;4239:79;;:::i;:::-;4201:119;4359:1;4384:53;4429:7;4420:6;4409:9;4405:22;4384:53;:::i;:::-;4374:63;;4330:117;4486:2;4512:50;4554:7;4545:6;4534:9;4530:22;4512:50;:::i;:::-;4502:60;;4457:115;4111:468;;;;;:::o;4585:474::-;4653:6;4661;4710:2;4698:9;4689:7;4685:23;4681:32;4678:119;;;4716:79;;:::i;:::-;4678:119;4836:1;4861:53;4906:7;4897:6;4886:9;4882:22;4861:53;:::i;:::-;4851:63;;4807:117;4963:2;4989:53;5034:7;5025:6;5014:9;5010:22;4989:53;:::i;:::-;4979:63;;4934:118;4585:474;;;;;:::o;5065:698::-;5157:6;5165;5173;5222:2;5210:9;5201:7;5197:23;5193:32;5190:119;;;5228:79;;:::i;:::-;5190:119;5376:1;5365:9;5361:17;5348:31;5406:18;5398:6;5395:30;5392:117;;;5428:79;;:::i;:::-;5392:117;5541:80;5613:7;5604:6;5593:9;5589:22;5541:80;:::i;:::-;5523:98;;;;5319:312;5670:2;5696:50;5738:7;5729:6;5718:9;5714:22;5696:50;:::i;:::-;5686:60;;5641:115;5065:698;;;;;:::o;5769:539::-;5853:6;5902:2;5890:9;5881:7;5877:23;5873:32;5870:119;;;5908:79;;:::i;:::-;5870:119;6056:1;6045:9;6041:17;6028:31;6086:18;6078:6;6075:30;6072:117;;;6108:79;;:::i;:::-;6072:117;6213:78;6283:7;6274:6;6263:9;6259:22;6213:78;:::i;:::-;6203:88;;5999:302;5769:539;;;;:::o;6314:323::-;6370:6;6419:2;6407:9;6398:7;6394:23;6390:32;6387:119;;;6425:79;;:::i;:::-;6387:119;6545:1;6570:50;6612:7;6603:6;6592:9;6588:22;6570:50;:::i;:::-;6560:60;;6516:114;6314:323;;;;:::o;6643:329::-;6702:6;6751:2;6739:9;6730:7;6726:23;6722:32;6719:119;;;6757:79;;:::i;:::-;6719:119;6877:1;6902:53;6947:7;6938:6;6927:9;6923:22;6902:53;:::i;:::-;6892:63;;6848:117;6643:329;;;;:::o;6978:765::-;7064:6;7072;7080;7088;7137:3;7125:9;7116:7;7112:23;7108:33;7105:120;;;7144:79;;:::i;:::-;7105:120;7264:1;7289:53;7334:7;7325:6;7314:9;7310:22;7289:53;:::i;:::-;7279:63;;7235:117;7391:2;7417:53;7462:7;7453:6;7442:9;7438:22;7417:53;:::i;:::-;7407:63;;7362:118;7519:2;7545:53;7590:7;7581:6;7570:9;7566:22;7545:53;:::i;:::-;7535:63;;7490:118;7647:2;7673:53;7718:7;7709:6;7698:9;7694:22;7673:53;:::i;:::-;7663:63;;7618:118;6978:765;;;;;;;:::o;7749:179::-;7818:10;7839:46;7881:3;7873:6;7839:46;:::i;:::-;7917:4;7912:3;7908:14;7894:28;;7749:179;;;;:::o;7934:108::-;8011:24;8029:5;8011:24;:::i;:::-;8006:3;7999:37;7934:108;;:::o;8048:118::-;8135:24;8153:5;8135:24;:::i;:::-;8130:3;8123:37;8048:118;;:::o;8202:732::-;8321:3;8350:54;8398:5;8350:54;:::i;:::-;8420:86;8499:6;8494:3;8420:86;:::i;:::-;8413:93;;8530:56;8580:5;8530:56;:::i;:::-;8609:7;8640:1;8625:284;8650:6;8647:1;8644:13;8625:284;;;8726:6;8720:13;8753:63;8812:3;8797:13;8753:63;:::i;:::-;8746:70;;8839:60;8892:6;8839:60;:::i;:::-;8829:70;;8685:224;8672:1;8669;8665:9;8660:14;;8625:284;;;8629:14;8925:3;8918:10;;8326:608;;;8202:732;;;;:::o;8940:109::-;9021:21;9036:5;9021:21;:::i;:::-;9016:3;9009:34;8940:109;;:::o;9055:183::-;9168:63;9225:5;9168:63;:::i;:::-;9163:3;9156:76;9055:183;;:::o;9244:147::-;9339:45;9378:5;9339:45;:::i;:::-;9334:3;9327:58;9244:147;;:::o;9397:364::-;9485:3;9513:39;9546:5;9513:39;:::i;:::-;9568:71;9632:6;9627:3;9568:71;:::i;:::-;9561:78;;9648:52;9693:6;9688:3;9681:4;9674:5;9670:16;9648:52;:::i;:::-;9725:29;9747:6;9725:29;:::i;:::-;9720:3;9716:39;9709:46;;9489:272;9397:364;;;;:::o;9767:366::-;9909:3;9930:67;9994:2;9989:3;9930:67;:::i;:::-;9923:74;;10006:93;10095:3;10006:93;:::i;:::-;10124:2;10119:3;10115:12;10108:19;;9767:366;;;:::o;10139:::-;10281:3;10302:67;10366:2;10361:3;10302:67;:::i;:::-;10295:74;;10378:93;10467:3;10378:93;:::i;:::-;10496:2;10491:3;10487:12;10480:19;;10139:366;;;:::o;10511:::-;10653:3;10674:67;10738:2;10733:3;10674:67;:::i;:::-;10667:74;;10750:93;10839:3;10750:93;:::i;:::-;10868:2;10863:3;10859:12;10852:19;;10511:366;;;:::o;10883:::-;11025:3;11046:67;11110:2;11105:3;11046:67;:::i;:::-;11039:74;;11122:93;11211:3;11122:93;:::i;:::-;11240:2;11235:3;11231:12;11224:19;;10883:366;;;:::o;11255:::-;11397:3;11418:67;11482:2;11477:3;11418:67;:::i;:::-;11411:74;;11494:93;11583:3;11494:93;:::i;:::-;11612:2;11607:3;11603:12;11596:19;;11255:366;;;:::o;11627:::-;11769:3;11790:67;11854:2;11849:3;11790:67;:::i;:::-;11783:74;;11866:93;11955:3;11866:93;:::i;:::-;11984:2;11979:3;11975:12;11968:19;;11627:366;;;:::o;11999:::-;12141:3;12162:67;12226:2;12221:3;12162:67;:::i;:::-;12155:74;;12238:93;12327:3;12238:93;:::i;:::-;12356:2;12351:3;12347:12;12340:19;;11999:366;;;:::o;12371:::-;12513:3;12534:67;12598:2;12593:3;12534:67;:::i;:::-;12527:74;;12610:93;12699:3;12610:93;:::i;:::-;12728:2;12723:3;12719:12;12712:19;;12371:366;;;:::o;12743:::-;12885:3;12906:67;12970:2;12965:3;12906:67;:::i;:::-;12899:74;;12982:93;13071:3;12982:93;:::i;:::-;13100:2;13095:3;13091:12;13084:19;;12743:366;;;:::o;13115:::-;13257:3;13278:67;13342:2;13337:3;13278:67;:::i;:::-;13271:74;;13354:93;13443:3;13354:93;:::i;:::-;13472:2;13467:3;13463:12;13456:19;;13115:366;;;:::o;13487:::-;13629:3;13650:67;13714:2;13709:3;13650:67;:::i;:::-;13643:74;;13726:93;13815:3;13726:93;:::i;:::-;13844:2;13839:3;13835:12;13828:19;;13487:366;;;:::o;13859:::-;14001:3;14022:67;14086:2;14081:3;14022:67;:::i;:::-;14015:74;;14098:93;14187:3;14098:93;:::i;:::-;14216:2;14211:3;14207:12;14200:19;;13859:366;;;:::o;14231:::-;14373:3;14394:67;14458:2;14453:3;14394:67;:::i;:::-;14387:74;;14470:93;14559:3;14470:93;:::i;:::-;14588:2;14583:3;14579:12;14572:19;;14231:366;;;:::o;14603:::-;14745:3;14766:67;14830:2;14825:3;14766:67;:::i;:::-;14759:74;;14842:93;14931:3;14842:93;:::i;:::-;14960:2;14955:3;14951:12;14944:19;;14603:366;;;:::o;14975:::-;15117:3;15138:67;15202:2;15197:3;15138:67;:::i;:::-;15131:74;;15214:93;15303:3;15214:93;:::i;:::-;15332:2;15327:3;15323:12;15316:19;;14975:366;;;:::o;15347:118::-;15434:24;15452:5;15434:24;:::i;:::-;15429:3;15422:37;15347:118;;:::o;15471:112::-;15554:22;15570:5;15554:22;:::i;:::-;15549:3;15542:35;15471:112;;:::o;15589:222::-;15682:4;15720:2;15709:9;15705:18;15697:26;;15733:71;15801:1;15790:9;15786:17;15777:6;15733:71;:::i;:::-;15589:222;;;;:::o;15817:210::-;15904:4;15942:2;15931:9;15927:18;15919:26;;15955:65;16017:1;16006:9;16002:17;15993:6;15955:65;:::i;:::-;15817:210;;;;:::o;16033:274::-;16152:4;16190:2;16179:9;16175:18;16167:26;;16203:97;16297:1;16286:9;16282:17;16273:6;16203:97;:::i;:::-;16033:274;;;;:::o;16313:313::-;16426:4;16464:2;16453:9;16449:18;16441:26;;16513:9;16507:4;16503:20;16499:1;16488:9;16484:17;16477:47;16541:78;16614:4;16605:6;16541:78;:::i;:::-;16533:86;;16313:313;;;;:::o;16632:419::-;16798:4;16836:2;16825:9;16821:18;16813:26;;16885:9;16879:4;16875:20;16871:1;16860:9;16856:17;16849:47;16913:131;17039:4;16913:131;:::i;:::-;16905:139;;16632:419;;;:::o;17057:::-;17223:4;17261:2;17250:9;17246:18;17238:26;;17310:9;17304:4;17300:20;17296:1;17285:9;17281:17;17274:47;17338:131;17464:4;17338:131;:::i;:::-;17330:139;;17057:419;;;:::o;17482:::-;17648:4;17686:2;17675:9;17671:18;17663:26;;17735:9;17729:4;17725:20;17721:1;17710:9;17706:17;17699:47;17763:131;17889:4;17763:131;:::i;:::-;17755:139;;17482:419;;;:::o;17907:::-;18073:4;18111:2;18100:9;18096:18;18088:26;;18160:9;18154:4;18150:20;18146:1;18135:9;18131:17;18124:47;18188:131;18314:4;18188:131;:::i;:::-;18180:139;;17907:419;;;:::o;18332:::-;18498:4;18536:2;18525:9;18521:18;18513:26;;18585:9;18579:4;18575:20;18571:1;18560:9;18556:17;18549:47;18613:131;18739:4;18613:131;:::i;:::-;18605:139;;18332:419;;;:::o;18757:::-;18923:4;18961:2;18950:9;18946:18;18938:26;;19010:9;19004:4;19000:20;18996:1;18985:9;18981:17;18974:47;19038:131;19164:4;19038:131;:::i;:::-;19030:139;;18757:419;;;:::o;19182:::-;19348:4;19386:2;19375:9;19371:18;19363:26;;19435:9;19429:4;19425:20;19421:1;19410:9;19406:17;19399:47;19463:131;19589:4;19463:131;:::i;:::-;19455:139;;19182:419;;;:::o;19607:::-;19773:4;19811:2;19800:9;19796:18;19788:26;;19860:9;19854:4;19850:20;19846:1;19835:9;19831:17;19824:47;19888:131;20014:4;19888:131;:::i;:::-;19880:139;;19607:419;;;:::o;20032:::-;20198:4;20236:2;20225:9;20221:18;20213:26;;20285:9;20279:4;20275:20;20271:1;20260:9;20256:17;20249:47;20313:131;20439:4;20313:131;:::i;:::-;20305:139;;20032:419;;;:::o;20457:::-;20623:4;20661:2;20650:9;20646:18;20638:26;;20710:9;20704:4;20700:20;20696:1;20685:9;20681:17;20674:47;20738:131;20864:4;20738:131;:::i;:::-;20730:139;;20457:419;;;:::o;20882:::-;21048:4;21086:2;21075:9;21071:18;21063:26;;21135:9;21129:4;21125:20;21121:1;21110:9;21106:17;21099:47;21163:131;21289:4;21163:131;:::i;:::-;21155:139;;20882:419;;;:::o;21307:::-;21473:4;21511:2;21500:9;21496:18;21488:26;;21560:9;21554:4;21550:20;21546:1;21535:9;21531:17;21524:47;21588:131;21714:4;21588:131;:::i;:::-;21580:139;;21307:419;;;:::o;21732:::-;21898:4;21936:2;21925:9;21921:18;21913:26;;21985:9;21979:4;21975:20;21971:1;21960:9;21956:17;21949:47;22013:131;22139:4;22013:131;:::i;:::-;22005:139;;21732:419;;;:::o;22157:::-;22323:4;22361:2;22350:9;22346:18;22338:26;;22410:9;22404:4;22400:20;22396:1;22385:9;22381:17;22374:47;22438:131;22564:4;22438:131;:::i;:::-;22430:139;;22157:419;;;:::o;22582:::-;22748:4;22786:2;22775:9;22771:18;22763:26;;22835:9;22829:4;22825:20;22821:1;22810:9;22806:17;22799:47;22863:131;22989:4;22863:131;:::i;:::-;22855:139;;22582:419;;;:::o;23007:222::-;23100:4;23138:2;23127:9;23123:18;23115:26;;23151:71;23219:1;23208:9;23204:17;23195:6;23151:71;:::i;:::-;23007:222;;;;:::o;23235:831::-;23498:4;23536:3;23525:9;23521:19;23513:27;;23550:71;23618:1;23607:9;23603:17;23594:6;23550:71;:::i;:::-;23631:80;23707:2;23696:9;23692:18;23683:6;23631:80;:::i;:::-;23758:9;23752:4;23748:20;23743:2;23732:9;23728:18;23721:48;23786:108;23889:4;23880:6;23786:108;:::i;:::-;23778:116;;23904:72;23972:2;23961:9;23957:18;23948:6;23904:72;:::i;:::-;23986:73;24054:3;24043:9;24039:19;24030:6;23986:73;:::i;:::-;23235:831;;;;;;;;:::o;24072:214::-;24161:4;24199:2;24188:9;24184:18;24176:26;;24212:67;24276:1;24265:9;24261:17;24252:6;24212:67;:::i;:::-;24072:214;;;;:::o;24292:129::-;24326:6;24353:20;;:::i;:::-;24343:30;;24382:33;24410:4;24402:6;24382:33;:::i;:::-;24292:129;;;:::o;24427:75::-;24460:6;24493:2;24487:9;24477:19;;24427:75;:::o;24508:311::-;24585:4;24675:18;24667:6;24664:30;24661:56;;;24697:18;;:::i;:::-;24661:56;24747:4;24739:6;24735:17;24727:25;;24807:4;24801;24797:15;24789:23;;24508:311;;;:::o;24825:132::-;24892:4;24915:3;24907:11;;24945:4;24940:3;24936:14;24928:22;;24825:132;;;:::o;24963:114::-;25030:6;25064:5;25058:12;25048:22;;24963:114;;;:::o;25083:99::-;25135:6;25169:5;25163:12;25153:22;;25083:99;;;:::o;25188:113::-;25258:4;25290;25285:3;25281:14;25273:22;;25188:113;;;:::o;25307:184::-;25406:11;25440:6;25435:3;25428:19;25480:4;25475:3;25471:14;25456:29;;25307:184;;;;:::o;25497:169::-;25581:11;25615:6;25610:3;25603:19;25655:4;25650:3;25646:14;25631:29;;25497:169;;;;:::o;25672:305::-;25712:3;25731:20;25749:1;25731:20;:::i;:::-;25726:25;;25765:20;25783:1;25765:20;:::i;:::-;25760:25;;25919:1;25851:66;25847:74;25844:1;25841:81;25838:107;;;25925:18;;:::i;:::-;25838:107;25969:1;25966;25962:9;25955:16;;25672:305;;;;:::o;25983:185::-;26023:1;26040:20;26058:1;26040:20;:::i;:::-;26035:25;;26074:20;26092:1;26074:20;:::i;:::-;26069:25;;26113:1;26103:35;;26118:18;;:::i;:::-;26103:35;26160:1;26157;26153:9;26148:14;;25983:185;;;;:::o;26174:348::-;26214:7;26237:20;26255:1;26237:20;:::i;:::-;26232:25;;26271:20;26289:1;26271:20;:::i;:::-;26266:25;;26459:1;26391:66;26387:74;26384:1;26381:81;26376:1;26369:9;26362:17;26358:105;26355:131;;;26466:18;;:::i;:::-;26355:131;26514:1;26511;26507:9;26496:20;;26174:348;;;;:::o;26528:191::-;26568:4;26588:20;26606:1;26588:20;:::i;:::-;26583:25;;26622:20;26640:1;26622:20;:::i;:::-;26617:25;;26661:1;26658;26655:8;26652:34;;;26666:18;;:::i;:::-;26652:34;26711:1;26708;26704:9;26696:17;;26528:191;;;;:::o;26725:96::-;26762:7;26791:24;26809:5;26791:24;:::i;:::-;26780:35;;26725:96;;;:::o;26827:90::-;26861:7;26904:5;26897:13;26890:21;26879:32;;26827:90;;;:::o;26923:126::-;26960:7;27000:42;26993:5;26989:54;26978:65;;26923:126;;;:::o;27055:77::-;27092:7;27121:5;27110:16;;27055:77;;;:::o;27138:86::-;27173:7;27213:4;27206:5;27202:16;27191:27;;27138:86;;;:::o;27230:152::-;27306:9;27339:37;27370:5;27339:37;:::i;:::-;27326:50;;27230:152;;;:::o;27388:121::-;27446:9;27479:24;27497:5;27479:24;:::i;:::-;27466:37;;27388:121;;;:::o;27515:126::-;27565:9;27598:37;27629:5;27598:37;:::i;:::-;27585:50;;27515:126;;;:::o;27647:113::-;27697:9;27730:24;27748:5;27730:24;:::i;:::-;27717:37;;27647:113;;;:::o;27766:307::-;27834:1;27844:113;27858:6;27855:1;27852:13;27844:113;;;27943:1;27938:3;27934:11;27928:18;27924:1;27919:3;27915:11;27908:39;27880:2;27877:1;27873:10;27868:15;;27844:113;;;27975:6;27972:1;27969:13;27966:101;;;28055:1;28046:6;28041:3;28037:16;28030:27;27966:101;27815:258;27766:307;;;:::o;28079:281::-;28162:27;28184:4;28162:27;:::i;:::-;28154:6;28150:40;28292:6;28280:10;28277:22;28256:18;28244:10;28241:34;28238:62;28235:88;;;28303:18;;:::i;:::-;28235:88;28343:10;28339:2;28332:22;28122:238;28079:281;;:::o;28366:233::-;28405:3;28428:24;28446:5;28428:24;:::i;:::-;28419:33;;28474:66;28467:5;28464:77;28461:103;;;28544:18;;:::i;:::-;28461:103;28591:1;28584:5;28580:13;28573:20;;28366:233;;;:::o;28605:180::-;28653:77;28650:1;28643:88;28750:4;28747:1;28740:15;28774:4;28771:1;28764:15;28791:180;28839:77;28836:1;28829:88;28936:4;28933:1;28926:15;28960:4;28957:1;28950:15;28977:180;29025:77;29022:1;29015:88;29122:4;29119:1;29112:15;29146:4;29143:1;29136:15;29163:180;29211:77;29208:1;29201:88;29308:4;29305:1;29298:15;29332:4;29329:1;29322:15;29349:117;29458:1;29455;29448:12;29472:117;29581:1;29578;29571:12;29595:117;29704:1;29701;29694:12;29718:117;29827:1;29824;29817:12;29841:117;29950:1;29947;29940:12;29964:102;30005:6;30056:2;30052:7;30047:2;30040:5;30036:14;30032:28;30022:38;;29964:102;;;:::o;30072:222::-;30212:34;30208:1;30200:6;30196:14;30189:58;30281:5;30276:2;30268:6;30264:15;30257:30;30072:222;:::o;30300:250::-;30440:34;30436:1;30428:6;30424:14;30417:58;30509:33;30504:2;30496:6;30492:15;30485:58;30300:250;:::o;30556:229::-;30696:34;30692:1;30684:6;30680:14;30673:58;30765:12;30760:2;30752:6;30748:15;30741:37;30556:229;:::o;30791:178::-;30931:30;30927:1;30919:6;30915:14;30908:54;30791:178;:::o;30975:225::-;31115:34;31111:1;31103:6;31099:14;31092:58;31184:8;31179:2;31171:6;31167:15;31160:33;30975:225;:::o;31206:221::-;31346:34;31342:1;31334:6;31330:14;31323:58;31415:4;31410:2;31402:6;31398:15;31391:29;31206:221;:::o;31433:222::-;31573:34;31569:1;31561:6;31557:14;31550:58;31642:5;31637:2;31629:6;31625:15;31618:30;31433:222;:::o;31661:177::-;31801:29;31797:1;31789:6;31785:14;31778:53;31661:177;:::o;31844:173::-;31984:25;31980:1;31972:6;31968:14;31961:49;31844:173;:::o;32023:220::-;32163:34;32159:1;32151:6;32147:14;32140:58;32232:3;32227:2;32219:6;32215:15;32208:28;32023:220;:::o;32249:182::-;32389:34;32385:1;32377:6;32373:14;32366:58;32249:182;:::o;32437:228::-;32577:34;32573:1;32565:6;32561:14;32554:58;32646:11;32641:2;32633:6;32629:15;32622:36;32437:228;:::o;32671:224::-;32811:34;32807:1;32799:6;32795:14;32788:58;32880:7;32875:2;32867:6;32863:15;32856:32;32671:224;:::o;32901:222::-;33041:34;33037:1;33029:6;33025:14;33018:58;33110:5;33105:2;33097:6;33093:15;33086:30;32901:222;:::o;33129:223::-;33269:34;33265:1;33257:6;33253:14;33246:58;33338:6;33333:2;33325:6;33321:15;33314:31;33129:223;:::o;33358:122::-;33431:24;33449:5;33431:24;:::i;:::-;33424:5;33421:35;33411:63;;33470:1;33467;33460:12;33411:63;33358:122;:::o;33486:116::-;33556:21;33571:5;33556:21;:::i;:::-;33549:5;33546:32;33536:60;;33592:1;33589;33582:12;33536:60;33486:116;:::o;33608:122::-;33681:24;33699:5;33681:24;:::i;:::-;33674:5;33671:35;33661:63;;33720:1;33717;33710:12;33661:63;33608:122;:::o

Swarm Source

ipfs://d63679ac596e97d5a73e8b75bc8b29c059604dc524d56d48c917866dc31bf841
Block Transaction Difficulty Gas Used Reward
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.

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.