Contract 0xdb5A21Ab8e196bEB68725c3B5bdD763CDFEdC65A 1

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x2bffe91e17daafbd9bf5907326c5e6a6303e179c3e204e728483f4fc32561335Claim256775932023-02-01 3:43:121 hr 44 mins ago0x885eb28b9b629f0829cd107f33c09821c200072c IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.005395962 26
0x1937e0794efb13af9b104c41290b8a36a573998d210a595c0b99f50248c85637Claim256627292023-01-31 19:25:0610 hrs 2 mins ago0xc384ea49d7933bb841d88380e9f02da6397abbfe IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.004975646 26
0xde11208c3678a5d3c40c70b15f2eff19613c270a92164a9bf4d5063762c6373dClaim256582022023-01-31 16:51:5412 hrs 35 mins ago0xd9261f681200d49e43cbf949310411bbce0a4bc5 IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.00545961 26
0x5585c1d889c83c45bd19d37ef93037c335f764c58c30f00c107748db331a4f58Claim256487982023-01-31 11:31:3617 hrs 55 mins ago0x0524157108f7b45e1942a47bc672ac9d7949b8bc IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.004086186 26
0x61400dee1f274937141fa52c51fa7c0b6d40fbcb0b05b72461ceff1f9d3420b1Claim256484662023-01-31 11:20:1218 hrs 7 mins ago0xa39abff89c90603885cddc5a419bf043e7a6b091 IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.010953306 26
0x9a30f784e3cc3b6fe004d78b663b66f42cefbd58a6dd5bcedde29a235cbfc258Claim256390222023-01-31 5:52:3323 hrs 34 mins ago0x09a0f04bc6fa969e1f0c98f6971d5440fc2c6b85 IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.0045147255 26.5
0x4a6f82593aeb9e2430391169b47ac60db2929d673c693d326102fcd18bea4049Claim256389332023-01-31 5:49:2323 hrs 38 mins ago0xfe033db846e7fc00e886dbcbeb5c37b7996202c6 IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.0041647665 26.5
0x4406ac7a72c855270d66f7c9a93747098223fafa6b230b1876b8c15e536f5a20Claim256229862023-01-30 20:40:341 day 8 hrs ago0x5a4bc113e991dfec0fa6f2bd5fea92821270d83c IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.005116254 26
0x6f205dc2f26274a810729a7a9c85b2a08924fe0aaeec122454f8416e90c2d577Claim256162732023-01-30 16:57:031 day 12 hrs ago0x468032c49edb3732157d6d425d2c1814d6d94024 IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.00545961 26
0x0729db4137e2a6d8d0d7cf1e810e4b36eb433ec3410be6f636fdb604c5644a0dRefund Wallets255911102023-01-30 2:51:022 days 2 hrs ago0x14f250a5caf9ccc34e2948ef9add416ad646119f IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.000662376 26
0x290921cd9ca64e4618ef38bbeca2c1cfdcc8b053cf5e2a1c3fcb8b2e658fe3bfRefund Wallets255910772023-01-30 2:49:432 days 2 hrs ago0x14f250a5caf9ccc34e2948ef9add416ad646119f IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.000662376 26
0xfac2b1647ccc0be29bf1033430fb17c5b990cb9f41cd031d78a83b2f67df356cClaim255910092023-01-30 2:47:262 days 2 hrs ago0x14f250a5caf9ccc34e2948ef9add416ad646119f IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.004086186 26
0x08a382d991dbf8354694b0f23bc58977ca4d0738e01ee03f8e601be9bd832d4aClaim255794832023-01-29 20:19:422 days 9 hrs ago0xfb56d0e1b00558f23c06d02dcf2b3aa4c60970bb IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.004685092527.5
0x10763f7b274c19d6acd38a9029da8c64b731d3fba7d17a809106eddd6c72e38cClaim255790872023-01-29 20:06:192 days 9 hrs ago0x58685e623ff968bc383e659051403ad796740d4e IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.004429542 26
0x1d5469a41cfea2f19a4dcce8e47674475f42112378cd6ef4fc6e6f775701c58dClaim255783802023-01-29 19:42:182 days 9 hrs ago0xa9e3599b23bc2ca4e6567b2bbdd09cc71786e242 IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.01217913 58
0x5c7a172897a23f348093fb09bc8729d7acb6e8435ed4d6ccf671fe5edc2e7122Claim255764582023-01-29 18:37:372 days 10 hrs ago0xfe033db846e7fc00e886dbcbeb5c37b7996202c6 IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.000803426 26
0xa3848cc8984b1674158e03ea360d401fa5b80cae12b6d8ef21f1735709532db4Claim255764402023-01-29 18:37:012 days 10 hrs ago0xfe033db846e7fc00e886dbcbeb5c37b7996202c6 IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.000803426 26
0xe4572846777da7f074e1c1987ebb52fb98d6417fc454b1eb8d45c08c3b2b82d7Claim255764242023-01-29 18:36:282 days 10 hrs ago0xfe033db846e7fc00e886dbcbeb5c37b7996202c6 IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.000803426 26
0xc4a145a88b82dae12565b2cd4ba5d4abe7070d0420f49799126e69db069d2c11Claim255761382023-01-29 18:26:432 days 11 hrs ago0xfe033db846e7fc00e886dbcbeb5c37b7996202c6 IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.000840916082 27.213232025
0xbc54d91c9f4b5d517b2948526a230f6bf122eee76210acdd2974b104336f81bbClaim255760712023-01-29 18:24:282 days 11 hrs ago0xfe033db846e7fc00e886dbcbeb5c37b7996202c6 IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.000834327 27
0xb3fbad49c2272fabfe375dd6a7beb3060cc0689429bfb4eab6107cdb58829329Claim255751702023-01-29 17:54:142 days 11 hrs ago0xfe033db846e7fc00e886dbcbeb5c37b7996202c6 IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.000772525 25
0xa56b020362877146be1a229c38210595ba3cf067c46598f58d52e2c68c3e3c6aClaim255750382023-01-29 17:49:522 days 11 hrs ago0x60b68cfd89c3a563b88c1b6dd5d87ed172cc190f IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.00487930828
0x516b452958966b06fad38abcd88a11564a0dc276a43d5c3a3c1527ea5c692774Claim255708832023-01-29 15:30:512 days 13 hrs ago0x253638a021372f57d854130ac896da76f92cd7bb IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.004086186 26
0x073a88ac2c5ad328658ad330ccd2e0426f580b7901866352ce495f145502843aClaim255706042023-01-29 15:21:262 days 14 hrs ago0x67602269e7524a2c6a6c36e1c897da9510bfa177 IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.01362936 80
0x9c97043dd80595013cc3863a52122ff8b8ddb2981f6b9d923afae9686e51e515Claim255680742023-01-29 13:56:062 days 15 hrs ago0x8673ddde323c3e6b69f149e10b6fa65bd688970a IN  0xdb5a21ab8e196beb68725c3b5bdd763cdfedc65a0 AVAX0.005217498 26
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RelyFund

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at snowtrace.io on 2022-12-16
*/

// SPDX-License-Identifier: MIT License
pragma solidity 0.8.4;

interface IERC20 {    
	function totalSupply() external view returns (uint256);
	function decimals() external view returns (uint8);
	function symbol() external view returns (string memory);
	function name() external view returns (string memory);
	function getOwner() external view returns (address);
	function balanceOf(address account) external view returns (uint256);
	function transfer(address recipient, uint256 amount) external returns (bool);
	function allowance(address _owner, address spender) external view returns (uint256);
	function approve(address spender, uint256 amount) external returns (bool);
	function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
	event Transfer(address indexed from, address indexed to, uint256 value);
	event Approval(address indexed owner, address indexed spender, uint256 value);
}

library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }
    
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }
    
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResult(success, returndata, errorMessage);
    }
    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }
    
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }
    
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            
            if (returndata.length > 0) {
                

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

library SafeERC20 {
    using Address for address;

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

    function safeTransferFrom(
        IERC20 token,
        address from,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }
    
    function safeApprove(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        
        require(
            (value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

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

    function safeDecreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        unchecked {
            uint256 oldAllowance = token.allowance(address(this), spender);
            require(oldAllowance >= value, "SafeERC20: decreased allowance below zero");
            uint256 newAllowance = oldAllowance - value;
            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
        }
    }
    
    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) {
            
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}


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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

    /**
    * @dev Initializes the contract setting the deployer as the initial owner.
    */
    constructor () {
      address msgSender = _msgSender();
      _owner = msgSender;
      emit OwnershipTransferred(address(0), msgSender);
    }

    /**
    * @dev Returns the address of the current owner.
    */
    function owner() public view returns (address) {
      return _owner;
    }
    
    modifier onlyOwner() {
      require(_owner == _msgSender(), "Ownable: caller is not the owner");
      _;
    }

    function renounceOwnership() public onlyOwner {
      emit OwnershipTransferred(_owner, address(0));
      _owner = address(0);
    }

    function transferOwnership(address newOwner) public onlyOwner {
      _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
      require(newOwner != address(0), "Ownable: new owner is the zero address");
      emit OwnershipTransferred(_owner, newOwner);
      _owner = newOwner;
    }
}

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

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

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

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

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

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

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

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

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

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

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

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

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

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

    IERC20 public USD;
    address public paymentTokenAddress;

    event _Deposit(address indexed addr, uint256 amount, uint40 tm);
    event _Payout(address indexed addr, uint256 amount);
    event _Refund(address indexed addr, uint256 amount);
	event ReinvestMade(address indexed addr, uint256 amount, uint40 tm);
		
	address payable public team;
    address payable public dev;   
   
    uint8 public isScheduled = 1;
    uint256 private constant DAY = 24 hours;
    uint256 private numDays = 7;    
	
	uint16 constant PERCENT_DIVIDER = 1000; 

    uint256 public invested;
    uint256 public reinvested;
    uint256 public withdrawn;
    uint256 public ref_bonus;
	uint256 public refunds;

    uint256 public launchTime;
	uint256 public sTime;

    struct Tarif {
        uint256 life_days;
        uint256 percent;
    }

    struct Depo {
        uint256 tarif;
        uint256 amount;
        uint40 time;
        uint256 depositTime;
        uint256 multiple;
    }

    struct Downline {
        uint8 level;    
        address invite;
    }

    struct Player {
        string email;
        string lastname;
        string firstname;
        string password;

        address upline;
        uint256 dividends;
                
        uint256 total_invested;
        uint256 total_withdrawn;
        uint256 total_ref_bonus;
        uint256 total_reinvested;
		uint256 total_refunded;
		
        uint40 lastWithdrawn;
        Depo[] deposits;
        Downline[] downlines1;
        uint256[1] structure; 
    }

    mapping(address => Player) public players;
    mapping(address => uint8) public banned;
    mapping(uint256 => Tarif) public tarifs;
    // white list wallets
    mapping(address => uint8) public whitelistWallets;

    uint public nextMemberNo;
    uint public decimals;

    constructor(address _token) {         
		dev = payable(msg.sender);		
	    team = payable(msg.sender);		
        
        tarifs[0] = Tarif(36135, 72270);
        
        paymentTokenAddress = _token;
		USD = IERC20(paymentTokenAddress);
        decimals = IERC20(paymentTokenAddress).decimals();
        launchTime = 0;
    }

    function launch() public onlyOwner() {
        require(launchTime == 0,"invalid state!");
        launchTime = block.timestamp;
    }
   
    function deposit(address _upline, uint256 amount) external {
        require(launchTime > 0,"not started!");
        require(amount >= 100 * (10**decimals), "Minimum Deposit is 100 USDT!");
        require(invested < 20000000 * (10**decimals) ,"Funds reach target!");
        USD.safeTransferFrom(msg.sender, address(this), amount);
    
        setRefrellink(msg.sender, _upline);
        if(invested + amount > 500000 * (10**decimals)){
            sTime = block.timestamp;
        }
        Player storage player = players[msg.sender];
        uint256 multiple = 0;
        if(whitelistWallets[msg.sender] == 1){
            whitelistWallets[msg.sender] = 0;
            multiple = 2;
        }else{
             if(invested < 200000 * (10**decimals)){
                multiple = 2;
            }else if(invested < 500000 * (10**decimals)){
                multiple = 1;
            }
        }
       

        player.deposits.push(Depo({
            tarif: 0,
            amount: amount,
            time: uint40(block.timestamp),
            depositTime: block.timestamp,
            multiple: multiple
        }));  
        emit _Deposit(msg.sender, amount, uint40(block.timestamp));
		
		uint256 teamFee = SafeMath.div(amount,100); 
		USD.safeTransfer(dev, teamFee/2);
		USD.safeTransfer(team, teamFee/2);

        player.total_invested += amount;
        
        invested += amount;
        withdrawn += teamFee;
        commissionPayouts(msg.sender, amount);
    }

    function redeposit() external {   
		require(banned[msg.sender] == 0,'Banned Wallet!');
        Player storage player = players[msg.sender];

        updateUserState(msg.sender);

        require(player.dividends >= 50 * (10**decimals), "Minimum reinvest is 50 USDT.");

        uint256 amount =  player.dividends;
        player.dividends = 0;
		
        player.total_withdrawn += amount;
        withdrawn += amount; 
		
        player.deposits.push(Depo({
            tarif: 0,
            amount: amount,
            time: uint40(block.timestamp),
            depositTime: 0,
            multiple: 0
        }));  
        emit ReinvestMade(msg.sender, amount, uint40(block.timestamp));

        player.total_invested += amount;
        player.total_reinvested += amount;
        
        invested += amount;
		reinvested += amount;    	
    }
	
    function claim() external {      
        require(banned[msg.sender] == 0,'Banned Wallet!');
        Player storage player = players[msg.sender];

        if(isScheduled == 1) {
            require (block.timestamp >= (player.lastWithdrawn + (DAY * numDays)), "Not due yet for next payout!");
        }     

        updateUserState(msg.sender);

        require(player.dividends >= 50 * (10**decimals), "Minimum payout is 50 USDT.");

        uint256 amount =  player.dividends;
        player.dividends = 0;
        
        player.total_withdrawn += amount;
        
		USD.safeTransfer(msg.sender, amount);
		emit _Payout(msg.sender, amount);
		
		uint256 teamFee = SafeMath.div(amount,100);
		USD.safeTransfer(team, teamFee/2);
        USD.safeTransfer(dev, teamFee/2);
        
		withdrawn += amount + teamFee;    
    }
	

    function pendingReward(address _addr) view external returns(uint256 value) {
		if(banned[_addr] == 1){ return 0; }
        Player storage player = players[_addr];

        for(uint256 i = 0; i < player.deposits.length; i++) {
            Depo storage dep = player.deposits[i];
            Tarif storage tarif = tarifs[dep.tarif];

            uint256 time_end = dep.time + tarif.life_days * 86400;
            uint40 from = player.lastWithdrawn > dep.time ? player.lastWithdrawn : dep.time;
            uint256 to = block.timestamp > time_end ? time_end : block.timestamp;

            uint256 multiple = 0;
            if(from < dep.time + 30 days){
                multiple = dep.multiple;
            }

            if(from < to) {
                value = value + dep.amount * (to - from)  * multiple / PERCENT_DIVIDER / 86400 + dep.amount * (to - from) * tarif.percent / tarif.life_days / 8640000 ;
            }
        }
        return value;
    }

 
    function updateUserState(address _addr) private {
        uint256 payout = this.pendingReward(_addr);

        if(payout > 0) {            
            players[_addr].lastWithdrawn = uint40(block.timestamp);
            players[_addr].dividends += payout;
        }
    }      


    function setRefrellink(address _addr, address _upline) private {
        if(players[_addr].upline == address(0) && _addr != owner()) {     
            
            if(players[_upline].total_invested <= 0) {
                _upline = owner();
            }
            
            players[_addr].upline = _upline;
            players[_upline].structure[0]++;

            Player storage up = players[_upline];
            up.downlines1.push(Downline({
                level: 1,
                invite: _addr
            }));  
        }
    }   
    
        
    function commissionPayouts(address _addr, uint256 _amount) private {
        address up = players[_addr].upline;

        if(up == address(0)) return;
        if(banned[up] == 0)
		{   
            uint256 ref_bonuses = 50;
            if(block.timestamp > launchTime + 30 days){
                ref_bonuses = 20;
            }

			uint256 bonus = _amount * ref_bonuses / PERCENT_DIVIDER;
		    
			USD.safeTransfer(up, bonus);
			
			players[up].total_ref_bonus += bonus;
			players[up].total_withdrawn += bonus;

			ref_bonus += bonus;
			withdrawn += bonus;
		}    
    }
    
    function relybot(uint256 amount) public onlyOwner returns (bool success) {
	    USD.safeTransfer(msg.sender, amount);
		withdrawn += amount;
        return true;
    }
	
    function nextWithdraw(address _addr) view external returns(uint40 next_sked) {
		if(banned[_addr] == 1) { return 0; }
        Player storage player = players[_addr];
        if(player.deposits.length > 0)
        {
          return uint40(player.lastWithdrawn + (DAY * numDays));
        }
        return 0;
    }

    function setPaymentToken(address newval) public onlyOwner returns (bool success) {
        paymentTokenAddress = newval;
        return true;
    }    

    function getContractBalance() public view returns (uint256) {
        return IERC20(paymentTokenAddress).balanceOf(address(this));
    }

    function setProfile(string memory _email, string memory _lname, string memory _fname, string memory _password) public returns (bool success) {
        players[msg.sender].email = _email;
        players[msg.sender].lastname = _lname;
        players[msg.sender].firstname = _fname;
        players[msg.sender].password = _password;
        return true;
    }

    function setNewUpline(address member, address newSP) public onlyOwner returns(bool success)
    {
        players[member].upline = newSP;
        return true;
    }

    function setTeam(address payable newval) public onlyOwner returns (bool success) {
        team = newval;
        return true;
    }    
	
    function setDev(address payable newval) public onlyOwner returns (bool success) {
        dev = newval;
        return true;
    }     
   
    function setScheduled(uint8 newval) public onlyOwner returns (bool success) {
        isScheduled = newval;
        return true;
    }   
   
    function setDays(uint newval) public onlyOwner returns (bool success) {    
        numDays = newval;
        return true;
    }    
    
	function banWallet(address wallet) public onlyOwner returns (bool success) {
        banned[wallet] = 1;
        return true;
    }
	
	function unbanWallet(address wallet) public onlyOwner returns (bool success) {
        banned[wallet] = 0;
        return true;
    }

    function refundWallets(address[] memory wallets) public onlyOwner returns (bool success) {
        for (uint256 i=0; i < wallets.length; i++) {
            refundWallet(wallets[i]);
        }
        return true;
    }
	
	function refundWallet(address wallet) internal returns (bool success) {
	       
        if(banned[wallet] == 1){ return false; }
        Player storage player = players[wallet]; 
        if(player.total_invested == 0){
            return false;
        }
        uint256 amount = 0;
        for(uint256 i = 0; i < player.deposits.length; i++) {
            Depo storage dep = player.deposits[i];
            if(dep.depositTime > 0 && (block.timestamp >= dep.depositTime + (15 days))){
                amount += dep.amount;
            }
        }
        if(amount == 0){
            return false;
        }
		player.total_refunded += amount;
		withdrawn += amount;
		refunds += amount;
        USD.safeTransfer(wallet, amount);
		emit _Refund(wallet, amount);
		banned[wallet] = 1;
        return true;
    }

    // add wallets to white list
    function addWhitelist(address[] calldata receivers) external onlyOwner {
        for (uint256 i = 0; i < receivers.length; i++) {
            whitelistWallets[receivers[i]] = 1;
        }
    }

    function userInfo(address _addr) view external returns(uint256 for_withdraw, 
                                                            uint256 numDeposits,  
                                                                uint256 downlines1,
																    uint256[1] memory structure) {
        Player storage player = players[_addr];

        uint256 payout = this.pendingReward(_addr);

        for(uint8 i = 0; i <1; i++) {
            structure[i] = player.structure[i];
        }

        return (
            payout + player.dividends,
            player.deposits.length,
            player.downlines1.length,
            structure
        );
    } 
    
    function memberDownline(address _addr, uint8 level, uint256 index) view external returns(address downline)
    {
        Player storage player = players[_addr];
        Downline storage dl = player.downlines1[0];
        if(level==1){
            dl  = player.downlines1[index];
        }
        return(dl.invite);
    }

    function memberDeposit(address _addr, uint256 index) view external returns(uint40 time, uint256 amount, uint256 lifedays, uint256 percent)
    {
        Player storage player = players[_addr];
        Depo storage dep = player.deposits[index];
        Tarif storage tarif = tarifs[dep.tarif];
        return(dep.time, dep.amount, tarif.life_days, tarif.percent);
    }

    function getBalance() public view returns(uint256) {
        return address(this).balance;
    }

    function getOwner() external view returns (address) {
        return owner();
    }

}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint40","name":"tm","type":"uint40"}],"name":"ReinvestMade","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint40","name":"tm","type":"uint40"}],"name":"_Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_Payout","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_Refund","type":"event"},{"inputs":[],"name":"USD","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"receivers","type":"address[]"}],"name":"addWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"banWallet","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"banned","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_upline","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dev","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getContractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"invested","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isScheduled","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"memberDeposit","outputs":[{"internalType":"uint40","name":"time","type":"uint40"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"lifedays","type":"uint256"},{"internalType":"uint256","name":"percent","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"memberDownline","outputs":[{"internalType":"address","name":"downline","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextMemberNo","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"nextWithdraw","outputs":[{"internalType":"uint40","name":"next_sked","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paymentTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"pendingReward","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"players","outputs":[{"internalType":"string","name":"email","type":"string"},{"internalType":"string","name":"lastname","type":"string"},{"internalType":"string","name":"firstname","type":"string"},{"internalType":"string","name":"password","type":"string"},{"internalType":"address","name":"upline","type":"address"},{"internalType":"uint256","name":"dividends","type":"uint256"},{"internalType":"uint256","name":"total_invested","type":"uint256"},{"internalType":"uint256","name":"total_withdrawn","type":"uint256"},{"internalType":"uint256","name":"total_ref_bonus","type":"uint256"},{"internalType":"uint256","name":"total_reinvested","type":"uint256"},{"internalType":"uint256","name":"total_refunded","type":"uint256"},{"internalType":"uint40","name":"lastWithdrawn","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ref_bonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"}],"name":"refundWallets","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"refunds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reinvested","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"relybot","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newval","type":"uint256"}],"name":"setDays","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newval","type":"address"}],"name":"setDev","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"address","name":"newSP","type":"address"}],"name":"setNewUpline","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newval","type":"address"}],"name":"setPaymentToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_email","type":"string"},{"internalType":"string","name":"_lname","type":"string"},{"internalType":"string","name":"_fname","type":"string"},{"internalType":"string","name":"_password","type":"string"}],"name":"setProfile","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newval","type":"uint8"}],"name":"setScheduled","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newval","type":"address"}],"name":"setTeam","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tarifs","outputs":[{"internalType":"uint256","name":"life_days","type":"uint256"},{"internalType":"uint256","name":"percent","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"team","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"unbanWallet","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"for_withdraw","type":"uint256"},{"internalType":"uint256","name":"numDeposits","type":"uint256"},{"internalType":"uint256","name":"downlines1","type":"uint256"},{"internalType":"uint256[1]","name":"structure","type":"uint256[1]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistWallets","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60806040526001600460146101000a81548160ff021916908360ff16021790555060076005553480156200003257600080fd5b5060405162005a1638038062005a16833981810160405281019062000058919062000364565b60006200006a6200032e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280618d27815260200162011a4e815250600f6000808152602001908152602001600020600082015181600001556020820151816001015590505080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015620002db57600080fd5b505afa158015620002f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000316919062000390565b60ff166012819055506000600b819055505062000431565b600033905090565b6000815190506200034781620003fd565b92915050565b6000815190506200035e8162000417565b92915050565b6000602082840312156200037757600080fd5b6000620003878482850162000336565b91505092915050565b600060208284031215620003a357600080fd5b6000620003b3848285016200034d565b91505092915050565b6000620003c982620003d0565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600060ff82169050919050565b6200040881620003bc565b81146200041457600080fd5b50565b6200042281620003f0565b81146200042e57600080fd5b50565b6155d580620004416000396000f3fe608060405234801561001057600080fd5b506004361061027f5760003560e01c8063884aa2581161015c578063b58d2508116100ce578063e2eb41ff11610087578063e2eb41ff146107eb578063ebea381514610826578063edac985b14610856578063f2fde38b14610872578063f40f0f521461088e578063f7e78e9d146108be5761027f565b8063b58d2508146106fe578063c28f9c191461072e578063c7bc2a631461074c578063c80ec5221461077f578063cafb22021461079d578063d477f05f146107bb5761027f565b80638e098215116101205780638e0982151461062757806391cca3db1461065857806392cea859146106765780639c8d83bb146106a6578063ad923505146106d6578063afb18fe7146106e05761027f565b8063884aa2581461056d578063893d20e81461059d5780638afa46b1146105bb5780638cc72783146105d95780638da5cb5b146106095761027f565b806355509c8f116101f5578063715018a6116101b9578063715018a6146104bb578063790ca413146104c55780637e6c906d146104e35780637ee80d17146105015780637fd877721461051f57806385f2aef21461054f5761027f565b806355509c8f146103ef5780636391def51461041f5780636a326ab11461043d5780636a4aef021461046d5780636f9fb98a1461049d5761027f565b806321850bf01161024757806321850bf01461032d578063310e70b61461035d578063313ce5671461037b578063417230631461039957806347e7ef24146103c95780634e71d92d146103e55761027f565b806301339c2114610284578063095cf5c61461028e57806312065fe0146102be5780631959a002146102dc5780631bf6c21b1461030f575b600080fd5b61028c6108ee565b005b6102a860048036038101906102a391906141d8565b6109d1565b6040516102b5919061487a565b60405180910390f35b6102c6610ab2565b6040516102d39190614b48565b60405180910390f35b6102f660048036038101906102f191906141af565b610aba565b6040516103069493929190614b8c565b60405180910390f35b610317610c6f565b6040516103249190614895565b60405180910390f35b610347600480360381019061034291906141af565b610c95565b604051610354919061487a565b60405180910390f35b610365610d8e565b6040516103729190614b48565b60405180910390f35b610383610d94565b6040516103909190614b48565b60405180910390f35b6103b360048036038101906103ae919061443a565b610d9a565b6040516103c0919061487a565b60405180910390f35b6103e360048036038101906103de919061423d565b610ea0565b005b6103ed6113f2565b005b61040960048036038101906104049190614377565b6117be565b604051610416919061487a565b60405180910390f35b610427611928565b6040516104349190614b48565b60405180910390f35b610457600480360381019061045291906141af565b61192e565b604051610464919061487a565b60405180910390f35b610487600480360381019061048291906141af565b611a0f565b604051610494919061487a565b60405180910390f35b6104a5611b08565b6040516104b29190614b48565b60405180910390f35b6104c3611bba565b005b6104cd611d0d565b6040516104da9190614b48565b60405180910390f35b6104eb611d13565b6040516104f89190614b48565b60405180910390f35b610509611d19565b6040516105169190614c5a565b60405180910390f35b61053960048036038101906105349190614279565b611d2c565b60405161054691906147e4565b60405180910390f35b610557611e40565b60405161056491906147ff565b60405180910390f35b61058760048036038101906105829190614201565b611e66565b604051610594919061487a565b60405180910390f35b6105a5611f88565b6040516105b291906147e4565b60405180910390f35b6105c3611f97565b6040516105d09190614b48565b60405180910390f35b6105f360048036038101906105ee919061430d565b611f9d565b604051610600919061487a565b60405180910390f35b6106116120a7565b60405161061e91906147e4565b60405180910390f35b610641600480360381019061063c919061443a565b6120d0565b60405161064f929190614b63565b60405180910390f35b6106606120f4565b60405161066d91906147ff565b60405180910390f35b610690600480360381019061068b91906141af565b61211a565b60405161069d9190614bfa565b60405180910390f35b6106c060048036038101906106bb91906141af565b61221b565b6040516106cd9190614c5a565b60405180910390f35b6106de61223b565b005b6106e861252e565b6040516106f591906147e4565b60405180910390f35b6107186004803603810190610713919061448c565b612554565b604051610725919061487a565b60405180910390f35b61073661260f565b6040516107439190614b48565b60405180910390f35b6107666004803603810190610761919061423d565b612615565b6040516107769493929190614c15565b60405180910390f35b610787612700565b6040516107949190614b48565b60405180910390f35b6107a5612706565b6040516107b29190614b48565b60405180910390f35b6107d560048036038101906107d091906141d8565b61270c565b6040516107e2919061487a565b60405180910390f35b610805600480360381019061080091906141af565b6127ed565b60405161081d9c9b9a999897969594939291906148d2565b60405180910390f35b610840600480360381019061083b919061443a565b612a9e565b60405161084d919061487a565b60405180910390f35b610870600480360381019061086b91906142c8565b612b45565b005b61088c600480360381019061088791906141af565b612ca6565b005b6108a860048036038101906108a391906141af565b612d47565b6040516108b59190614b48565b60405180910390f35b6108d860048036038101906108d391906141af565b613053565b6040516108e59190614c5a565b60405180910390f35b6108f6613073565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097a90614a48565b60405180910390fd5b6000600b54146109c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bf90614aa8565b60405180910390fd5b42600b81905550565b60006109db613073565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5f90614a48565b60405180910390fd5b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600047905090565b6000806000610ac7613f24565b6000600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060003073ffffffffffffffffffffffffffffffffffffffff1663f40f0f52886040518263ffffffff1660e01b8152600401610b4591906147e4565b60206040518083038186803b158015610b5d57600080fd5b505afa158015610b71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b959190614463565b905060005b60018160ff161015610c3f5782600e018160ff1660018110610be5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0154848260ff1660018110610c23577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020020181815250508080610c37906151a1565b915050610b9a565b50816005015481610c509190614d56565b82600c018054905083600d018054905095509550955050509193509193565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c9f613073565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2390614a48565b60405180910390fd5b6001600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060019050919050565b60075481565b60125481565b6000610da4613073565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2890614a48565b60405180910390fd5b610e7e3383600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661307b9092919063ffffffff16565b8160086000828254610e909190614d56565b9250508190555060019050919050565b6000600b5411610ee5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edc906149c8565b60405180910390fd5b601254600a610ef49190614e6b565b6064610f009190614f89565b811015610f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3990614a28565b60405180910390fd5b601254600a610f519190614e6b565b6301312d00610f609190614f89565b60065410610fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9a90614ac8565b60405180910390fd5b610ff2333083600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613101909392919063ffffffff16565b610ffc338361318a565b601254600a61100b9190614e6b565b6207a1206110199190614f89565b816006546110279190614d56565b11156110355742600c819055505b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006001601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161415611134576000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060029050611190565b601254600a6111439190614e6b565b62030d406111519190614f89565b6006541015611163576002905061118f565b601254600a6111729190614e6b565b6207a1206111809190614f89565b600654101561118e57600190505b5b5b81600c016040518060a00160405280600081526020018581526020014264ffffffffff168152602001428152602001838152509080600181540180825580915050600190039060005260206000209060050201600090919091909150600082015181600001556020820151816001015560408201518160020160006101000a81548164ffffffffff021916908364ffffffffff160217905550606082015181600301556080820151816004015550503373ffffffffffffffffffffffffffffffffffffffff167fa24a5eebc50be1f0c92dbb186114b7392d43ecb101113f1972839255e166ebd78442604051611287929190614bd1565b60405180910390a2600061129c8460646134d3565b9050611319600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002836112d19190614de7565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661307b9092919063ffffffff16565b611394600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660028361134c9190614de7565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661307b9092919063ffffffff16565b838360060160008282546113a89190614d56565b9250508190555083600660008282546113c19190614d56565b9250508190555080600860008282546113da9190614d56565b925050819055506113eb33856134e9565b5050505050565b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614611484576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147b906149a8565b60405180910390fd5b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506001600460149054906101000a900460ff1660ff16141561155d57600554620151806114f39190614f89565b81600b0160009054906101000a900464ffffffffff1664ffffffffff1661151a9190614d56565b42101561155c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155390614b08565b60405180910390fd5b5b61156633613761565b601254600a6115759190614e6b565b60326115819190614f89565b816005015410156115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90614a68565b60405180910390fd5b60008160050154905060008260050181905550808260070160008282546115ee9190614d56565b925050819055506116423382600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661307b9092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167fdb7dac28243f4ebd92a2cc9b5f632941d79587e5a648c8b52f797db8336ac200826040516116889190614b48565b60405180910390a2600061169d8260646134d3565b905061171a600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002836116d29190614de7565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661307b9092919063ffffffff16565b611795600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660028361174d9190614de7565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661307b9092919063ffffffff16565b80826117a19190614d56565b600860008282546117b29190614d56565b92505081905550505050565b600084600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000019080519060200190611816929190613f46565b5083600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101908051906020019061186d929190613f46565b5082600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020190805190602001906118c4929190613f46565b5081600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301908051906020019061191b929190613f46565b5060019050949350505050565b60115481565b6000611938613073565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bc90614a48565b60405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000611a19613073565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9d90614a48565b60405180910390fd5b6000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555060019050919050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611b6591906147e4565b60206040518083038186803b158015611b7d57600080fd5b505afa158015611b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb59190614463565b905090565b611bc2613073565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4690614a48565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b5481565b600c5481565b600460149054906101000a900460ff1681565b600080600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600d01600081548110611daf577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001905060018560ff161415611e105781600d018481548110611e03577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200190505b8060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925050509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611e70613073565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef490614a48565b60405180910390fd5b81600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905092915050565b6000611f926120a7565b905090565b600a5481565b6000611fa7613073565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202b90614a48565b60405180910390fd5b60005b825181101561209d5761208983828151811061207c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516138b8565b50808061209590615158565b915050612037565b5060019050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f6020528060005260406000206000915090508060000154908060010154905082565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006001600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16141561217d5760009050612216565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600c0180549050111561221057600554620151806121e19190614f89565b81600b0160009054906101000a900464ffffffffff1664ffffffffff166122089190614d56565b915050612216565b60009150505b919050565b600e6020528060005260406000206000915054906101000a900460ff1681565b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16146122cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c4906149a8565b60405180910390fd5b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061231933613761565b601254600a6123289190614e6b565b60326123349190614f89565b8160050154101561237a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237190614a88565b60405180910390fd5b60008160050154905060008260050181905550808260070160008282546123a19190614d56565b9250508190555080600860008282546123ba9190614d56565b9250508190555081600c016040518060a00160405280600081526020018381526020014264ffffffffff1681526020016000815260200160008152509080600181540180825580915050600190039060005260206000209060050201600090919091909150600082015181600001556020820151816001015560408201518160020160006101000a81548164ffffffffff021916908364ffffffffff160217905550606082015181600301556080820151816004015550503373ffffffffffffffffffffffffffffffffffffffff167fbb96fd8fd566700a198e69659abc731daf3cbdeb5f946192c09d3034673f2d0382426040516124ba929190614bd1565b60405180910390a2808260060160008282546124d69190614d56565b92505081905550808260090160008282546124f19190614d56565b92505081905550806006600082825461250a9190614d56565b9250508190555080600760008282546125239190614d56565b925050819055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061255e613073565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e290614a48565b60405180910390fd5b81600460146101000a81548160ff021916908360ff16021790555060019050919050565b60095481565b6000806000806000600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600c01878154811061269c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906005020190506000600f60008360000154815260200190815260200160002090508160020160009054906101000a900464ffffffffff16826001015482600001548360010154965096509650965050505092959194509250565b60085481565b60065481565b6000612716613073565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279a90614a48565b60405180910390fd5b81600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600d602052806000526040600020600091509050806000018054612810906150f5565b80601f016020809104026020016040519081016040528092919081815260200182805461283c906150f5565b80156128895780601f1061285e57610100808354040283529160200191612889565b820191906000526020600020905b81548152906001019060200180831161286c57829003601f168201915b50505050509080600101805461289e906150f5565b80601f01602080910402602001604051908101604052809291908181526020018280546128ca906150f5565b80156129175780601f106128ec57610100808354040283529160200191612917565b820191906000526020600020905b8154815290600101906020018083116128fa57829003601f168201915b50505050509080600201805461292c906150f5565b80601f0160208091040260200160405190810160405280929190818152602001828054612958906150f5565b80156129a55780601f1061297a576101008083540402835291602001916129a5565b820191906000526020600020905b81548152906001019060200180831161298857829003601f168201915b5050505050908060030180546129ba906150f5565b80601f01602080910402602001604051908101604052809291908181526020018280546129e6906150f5565b8015612a335780601f10612a0857610100808354040283529160200191612a33565b820191906000526020600020905b815481529060010190602001808311612a1657829003601f168201915b5050505050908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600501549080600601549080600701549080600801549080600901549080600a01549080600b0160009054906101000a900464ffffffffff1690508c565b6000612aa8613073565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2c90614a48565b60405180910390fd5b8160058190555060019050919050565b612b4d613073565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612bda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd190614a48565b60405180910390fd5b60005b82829050811015612ca157600160106000858585818110612c27577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190612c3c91906141af565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055508080612c9990615158565b915050612bdd565b505050565b612cae613073565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3290614a48565b60405180910390fd5b612d4481613b8a565b50565b60006001600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161415612daa576000905061304e565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060005b81600c018054905081101561304b57600082600c018281548110612e3d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906005020190506000600f60008360000154815260200190815260200160002090506000620151808260000154612e7d9190614f89565b8360020160009054906101000a900464ffffffffff1664ffffffffff16612ea49190614d56565b905060008360020160009054906101000a900464ffffffffff1664ffffffffff1686600b0160009054906101000a900464ffffffffff1664ffffffffff1611612f02578360020160009054906101000a900464ffffffffff16612f19565b85600b0160009054906101000a900464ffffffffff165b90506000824211612f2a5742612f2c565b825b9050600062278d008660020160009054906101000a900464ffffffffff16612f549190614dac565b64ffffffffff168364ffffffffff161015612f7157856004015490505b818364ffffffffff161015613032576283d600856000015486600101548564ffffffffff1685612fa19190614fe3565b8960010154612fb09190614f89565b612fba9190614f89565b612fc49190614de7565b612fce9190614de7565b620151806103e861ffff16838664ffffffffff1686612fed9190614fe3565b8a60010154612ffc9190614f89565b6130069190614f89565b6130109190614de7565b61301a9190614de7565b8a6130259190614d56565b61302f9190614d56565b98505b505050505050808061304390615158565b915050612df0565b50505b919050565b60106020528060005260406000206000915054906101000a900460ff1681565b600033905090565b6130fc8363a9059cbb60e01b848460405160240161309a929190614851565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613cb7565b505050565b613184846323b872dd60e01b8585856040516024016131229392919061481a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613cb7565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff16600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561325b575061322b6120a7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156134cf576000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060154116132b5576132b26120a7565b90505b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600e016000600181106133b1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0160008154809291906133c390615158565b91905055506000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600d016040518060400160405280600160ff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505b5050565b600081836134e19190614de7565b905092915050565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561358b575061375d565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16141561375b5760006032905062278d00600b546135fa9190614d56565b42111561360657601490505b60006103e861ffff16828561361b9190614f89565b6136259190614de7565b90506136748382600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661307b9092919063ffffffff16565b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080160008282546136c69190614d56565b9250508190555080600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701600082825461371f9190614d56565b9250508190555080600960008282546137389190614d56565b9250508190555080600860008282546137519190614d56565b9250508190555050505b505b5050565b60003073ffffffffffffffffffffffffffffffffffffffff1663f40f0f52836040518263ffffffff1660e01b815260040161379c91906147e4565b60206040518083038186803b1580156137b457600080fd5b505afa1580156137c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137ec9190614463565b905060008111156138b45742600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600b0160006101000a81548164ffffffffff021916908364ffffffffff16021790555080600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008282546138ac9190614d56565b925050819055505b5050565b60006001600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16141561391b5760009050613b85565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600601541415613975576000915050613b85565b6000805b82600c0180549050811015613a2857600083600c0182815481106139c6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600502019050600081600301541180156139fc57506213c68081600301546139f89190614d56565b4210155b15613a1457806001015483613a119190614d56565b92505b508080613a2090615158565b915050613979565b506000811415613a3d57600092505050613b85565b8082600a016000828254613a519190614d56565b925050819055508060086000828254613a6a9190614d56565b9250508190555080600a6000828254613a839190614d56565b92505081905550613ad78482600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661307b9092919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff167f5a8b23b6708800de8ffd6d2398cde024a6031d67c18648c347636e31d0fec45982604051613b1d9190614b48565b60405180910390a26001600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001925050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bf1906149e8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000613d19826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16613d7e9092919063ffffffff16565b9050600081511115613d795780806020019051810190613d39919061434e565b613d78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d6f90614b28565b60405180910390fd5b5b505050565b6060613d8d8484600085613d96565b90509392505050565b606082471015613ddb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613dd290614a08565b60405180910390fd5b613de485613eaa565b613e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e1a90614ae8565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051613e4c91906147cd565b60006040518083038185875af1925050503d8060008114613e89576040519150601f19603f3d011682016040523d82523d6000602084013e613e8e565b606091505b5091509150613e9e828286613ebd565b92505050949350505050565b600080823b905060008111915050919050565b60608315613ecd57829050613f1d565b600083511115613ee05782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f1491906148b0565b60405180910390fd5b9392505050565b6040518060200160405280600190602082028036833780820191505090505090565b828054613f52906150f5565b90600052602060002090601f016020900481019282613f745760008555613fbb565b82601f10613f8d57805160ff1916838001178555613fbb565b82800160010185558215613fbb579182015b82811115613fba578251825591602001919060010190613f9f565b5b509050613fc89190613fcc565b5090565b5b80821115613fe5576000816000905550600101613fcd565b5090565b6000613ffc613ff784614c9a565b614c75565b9050808382526020820190508285602086028201111561401b57600080fd5b60005b8581101561404b57816140318882614093565b84526020840193506020830192505060018101905061401e565b5050509392505050565b600061406861406384614cc6565b614c75565b90508281526020810184848401111561408057600080fd5b61408b8482856150b3565b509392505050565b6000813590506140a28161552c565b92915050565b6000813590506140b781615543565b92915050565b60008083601f8401126140cf57600080fd5b8235905067ffffffffffffffff8111156140e857600080fd5b60208301915083602082028301111561410057600080fd5b9250929050565b600082601f83011261411857600080fd5b8135614128848260208601613fe9565b91505092915050565b6000815190506141408161555a565b92915050565b600082601f83011261415757600080fd5b8135614167848260208601614055565b91505092915050565b60008135905061417f81615571565b92915050565b60008151905061419481615571565b92915050565b6000813590506141a981615588565b92915050565b6000602082840312156141c157600080fd5b60006141cf84828501614093565b91505092915050565b6000602082840312156141ea57600080fd5b60006141f8848285016140a8565b91505092915050565b6000806040838503121561421457600080fd5b600061422285828601614093565b925050602061423385828601614093565b9150509250929050565b6000806040838503121561425057600080fd5b600061425e85828601614093565b925050602061426f85828601614170565b9150509250929050565b60008060006060848603121561428e57600080fd5b600061429c86828701614093565b93505060206142ad8682870161419a565b92505060406142be86828701614170565b9150509250925092565b600080602083850312156142db57600080fd5b600083013567ffffffffffffffff8111156142f557600080fd5b614301858286016140bd565b92509250509250929050565b60006020828403121561431f57600080fd5b600082013567ffffffffffffffff81111561433957600080fd5b61434584828501614107565b91505092915050565b60006020828403121561436057600080fd5b600061436e84828501614131565b91505092915050565b6000806000806080858703121561438d57600080fd5b600085013567ffffffffffffffff8111156143a757600080fd5b6143b387828801614146565b945050602085013567ffffffffffffffff8111156143d057600080fd5b6143dc87828801614146565b935050604085013567ffffffffffffffff8111156143f957600080fd5b61440587828801614146565b925050606085013567ffffffffffffffff81111561442257600080fd5b61442e87828801614146565b91505092959194509250565b60006020828403121561444c57600080fd5b600061445a84828501614170565b91505092915050565b60006020828403121561447557600080fd5b600061448384828501614185565b91505092915050565b60006020828403121561449e57600080fd5b60006144ac8482850161419a565b91505092915050565b60006144c18383614791565b60208301905092915050565b6144d681615029565b82525050565b6144e581615017565b82525050565b6144f481614d01565b6144fe8184614d2f565b925061450982614cf7565b8060005b8381101561453a57815161452187826144b5565b965061452c83614d22565b92505060018101905061450d565b505050505050565b61454b8161503b565b82525050565b600061455c82614d0c565b6145668185614d3a565b93506145768185602086016150c2565b80840191505092915050565b61458b8161508f565b82525050565b600061459c82614d17565b6145a68185614d45565b93506145b68185602086016150c2565b6145bf81615287565b840191505092915050565b60006145d7600e83614d45565b91506145e2826152a5565b602082019050919050565b60006145fa600c83614d45565b9150614605826152ce565b602082019050919050565b600061461d602683614d45565b9150614628826152f7565b604082019050919050565b6000614640602683614d45565b915061464b82615346565b604082019050919050565b6000614663601c83614d45565b915061466e82615395565b602082019050919050565b6000614686602083614d45565b9150614691826153be565b602082019050919050565b60006146a9601a83614d45565b91506146b4826153e7565b602082019050919050565b60006146cc601c83614d45565b91506146d782615410565b602082019050919050565b60006146ef600e83614d45565b91506146fa82615439565b602082019050919050565b6000614712601383614d45565b915061471d82615462565b602082019050919050565b6000614735601d83614d45565b91506147408261548b565b602082019050919050565b6000614758601c83614d45565b9150614763826154b4565b602082019050919050565b600061477b602a83614d45565b9150614786826154dd565b604082019050919050565b61479a81615067565b82525050565b6147a981615067565b82525050565b6147b881615071565b82525050565b6147c781615082565b82525050565b60006147d98284614551565b915081905092915050565b60006020820190506147f960008301846144dc565b92915050565b600060208201905061481460008301846144cd565b92915050565b600060608201905061482f60008301866144dc565b61483c60208301856144dc565b61484960408301846147a0565b949350505050565b600060408201905061486660008301856144dc565b61487360208301846147a0565b9392505050565b600060208201905061488f6000830184614542565b92915050565b60006020820190506148aa6000830184614582565b92915050565b600060208201905081810360008301526148ca8184614591565b905092915050565b60006101808201905081810360008301526148ed818f614591565b90508181036020830152614901818e614591565b90508181036040830152614915818d614591565b90508181036060830152614929818c614591565b9050614938608083018b6144dc565b61494560a083018a6147a0565b61495260c08301896147a0565b61495f60e08301886147a0565b61496d6101008301876147a0565b61497b6101208301866147a0565b6149896101408301856147a0565b6149976101608301846147af565b9d9c50505050505050505050505050565b600060208201905081810360008301526149c1816145ca565b9050919050565b600060208201905081810360008301526149e1816145ed565b9050919050565b60006020820190508181036000830152614a0181614610565b9050919050565b60006020820190508181036000830152614a2181614633565b9050919050565b60006020820190508181036000830152614a4181614656565b9050919050565b60006020820190508181036000830152614a6181614679565b9050919050565b60006020820190508181036000830152614a818161469c565b9050919050565b60006020820190508181036000830152614aa1816146bf565b9050919050565b60006020820190508181036000830152614ac1816146e2565b9050919050565b60006020820190508181036000830152614ae181614705565b9050919050565b60006020820190508181036000830152614b0181614728565b9050919050565b60006020820190508181036000830152614b218161474b565b9050919050565b60006020820190508181036000830152614b418161476e565b9050919050565b6000602082019050614b5d60008301846147a0565b92915050565b6000604082019050614b7860008301856147a0565b614b8560208301846147a0565b9392505050565b6000608082019050614ba160008301876147a0565b614bae60208301866147a0565b614bbb60408301856147a0565b614bc860608301846144eb565b95945050505050565b6000604082019050614be660008301856147a0565b614bf360208301846147af565b9392505050565b6000602082019050614c0f60008301846147af565b92915050565b6000608082019050614c2a60008301876147af565b614c3760208301866147a0565b614c4460408301856147a0565b614c5160608301846147a0565b95945050505050565b6000602082019050614c6f60008301846147be565b92915050565b6000614c7f614c90565b9050614c8b8282615127565b919050565b6000604051905090565b600067ffffffffffffffff821115614cb557614cb4615258565b5b602082029050602081019050919050565b600067ffffffffffffffff821115614ce157614ce0615258565b5b614cea82615287565b9050602081019050919050565b6000819050919050565b600060019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600081905092915050565b600081905092915050565b600082825260208201905092915050565b6000614d6182615067565b9150614d6c83615067565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614da157614da06151cb565b5b828201905092915050565b6000614db782615071565b9150614dc283615071565b92508264ffffffffff03821115614ddc57614ddb6151cb565b5b828201905092915050565b6000614df282615067565b9150614dfd83615067565b925082614e0d57614e0c6151fa565b5b828204905092915050565b6000808291508390505b6001851115614e6257808604811115614e3e57614e3d6151cb565b5b6001851615614e4d5780820291505b8081029050614e5b85615298565b9450614e22565b94509492505050565b6000614e7682615067565b9150614e8183615067565b9250614eae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614eb6565b905092915050565b600082614ec65760019050614f82565b81614ed45760009050614f82565b8160018114614eea5760028114614ef457614f23565b6001915050614f82565b60ff841115614f0657614f056151cb565b5b8360020a915084821115614f1d57614f1c6151cb565b5b50614f82565b5060208310610133831016604e8410600b8410161715614f585782820a905083811115614f5357614f526151cb565b5b614f82565b614f658484846001614e18565b92509050818404811115614f7c57614f7b6151cb565b5b81810290505b9392505050565b6000614f9482615067565b9150614f9f83615067565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614fd857614fd76151cb565b5b828202905092915050565b6000614fee82615067565b9150614ff983615067565b92508282101561500c5761500b6151cb565b5b828203905092915050565b600061502282615047565b9050919050565b600061503482615047565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600064ffffffffff82169050919050565b600060ff82169050919050565b600061509a826150a1565b9050919050565b60006150ac82615047565b9050919050565b82818337600083830152505050565b60005b838110156150e05780820151818401526020810190506150c5565b838111156150ef576000848401525b50505050565b6000600282049050600182168061510d57607f821691505b6020821081141561512157615120615229565b5b50919050565b61513082615287565b810181811067ffffffffffffffff8211171561514f5761514e615258565b5b80604052505050565b600061516382615067565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415615196576151956151cb565b5b600182019050919050565b60006151ac82615082565b915060ff8214156151c0576151bf6151cb565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f42616e6e65642057616c6c657421000000000000000000000000000000000000600082015250565b7f6e6f742073746172746564210000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f4d696e696d756d204465706f7369742069732031303020555344542100000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d696e696d756d207061796f757420697320353020555344542e000000000000600082015250565b7f4d696e696d756d207265696e7665737420697320353020555344542e00000000600082015250565b7f696e76616c696420737461746521000000000000000000000000000000000000600082015250565b7f46756e6473207265616368207461726765742100000000000000000000000000600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f4e6f74206475652079657420666f72206e657874207061796f75742100000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b61553581615017565b811461554057600080fd5b50565b61554c81615029565b811461555757600080fd5b50565b6155638161503b565b811461556e57600080fd5b50565b61557a81615067565b811461558557600080fd5b50565b61559181615082565b811461559c57600080fd5b5056fea2646970667358221220e1ccec6e6c1664329bf6af0570fb2ed7035da780c80b407fdfe32e008911713a64736f6c63430008040033000000000000000000000000b97ef9ef8734c71904d8002f8b6bc66dd9c48a6e

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000b97ef9ef8734c71904d8002f8b6bc66dd9c48a6e

-----Decoded View---------------
Arg [0] : _token (address): 0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b97ef9ef8734c71904d8002f8b6bc66dd9c48a6e


Deployed ByteCode Sourcemap

10774:13382:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13106:136;;;:::i;:::-;;20361:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23960:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22547:681;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;10884:17;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20953:134;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11481:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12732:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18996:171;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13253:1518;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15663:850;;;:::i;:::-;;19813:364;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12701:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19505:150;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21093:136;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19667:138;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7641:136;;;:::i;:::-;;11603:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11632:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11284:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23241:329;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11209:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20185:168;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24066:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11572:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21237:223;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7429:77;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12570:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;11243:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19176:321;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12524:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14779:875;;;:::i;:::-;;10908:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20658:137;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11544:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23578:374;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;11513:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11451:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20509:133;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12476:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;20809:131;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22342:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7785:107;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16524:976;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12643:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13106:136;7566:12;:10;:12::i;:::-;7556:22;;:6;;;;;;;;;;:22;;;7548:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13176:1:::1;13162:10;;:15;13154:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;13219:15;13206:10;:28;;;;13106:136::o:0;20361:135::-;20428:12;7566;:10;:12::i;:::-;7556:22;;:6;;;;;;;;;;:22;;;7548:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20460:6:::1;20453:4;;:13;;;;;;;;;;;;;;;;;;20484:4;20477:11;;20361:135:::0;;;:::o;23960:98::-;24002:7;24029:21;24022:28;;23960:98;:::o;22547:681::-;22602:20;22686:19;22774:18;22815:27;;:::i;:::-;22855:21;22879:7;:14;22887:5;22879:14;;;;;;;;;;;;;;;22855:38;;22906:14;22923:4;:18;;;22942:5;22923:25;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22906:42;;22965:7;22961:89;22981:1;22978;:4;;;22961:89;;;23019:6;:16;;23036:1;23019:19;;;;;;;;;;;;;;;;;;;23004:9;23014:1;23004:12;;;;;;;;;;;;;;;;;;;;:34;;;;;22984:3;;;;;:::i;:::-;;;;22961:89;;;;23093:6;:16;;;23084:6;:25;;;;:::i;:::-;23124:6;:15;;:22;;;;23161:6;:17;;:24;;;;23062:158;;;;;;;;22547:681;;;;;:::o;10884:17::-;;;;;;;;;;;;;:::o;20953:134::-;21014:12;7566;:10;:12::i;:::-;7556:22;;:6;;;;;;;;;;:22;;;7548:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21056:1:::1;21039:6;:14;21046:6;21039:14;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;21075:4;21068:11;;20953:134:::0;;;:::o;11481:25::-;;;;:::o;12732:20::-;;;;:::o;18996:171::-;19055:12;7566;:10;:12::i;:::-;7556:22;;:6;;;;;;;;;;:22;;;7548:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19077:36:::1;19094:10;19106:6;19077:3;;;;;;;;;;;:16;;;;:36;;;;;:::i;:::-;19131:6;19118:9;;:19;;;;;;;:::i;:::-;;;;;;;;19155:4;19148:11;;18996:171:::0;;;:::o;13253:1518::-;13344:1;13331:10;;:14;13323:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13401:8;;13397:2;:12;;;;:::i;:::-;13390:3;:20;;;;:::i;:::-;13380:6;:30;;13372:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13489:8;;13485:2;:12;;;;:::i;:::-;13473:8;:25;;;;:::i;:::-;13462:8;;:36;13454:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13533:55;13554:10;13574:4;13581:6;13533:3;;;;;;;;;;;:20;;;;:55;;;;;;:::i;:::-;13605:34;13619:10;13631:7;13605:13;:34::i;:::-;13687:8;;13683:2;:12;;;;:::i;:::-;13673:6;:23;;;;:::i;:::-;13664:6;13653:8;;:17;;;;:::i;:::-;:43;13650:97;;;13720:15;13712:5;:23;;;;13650:97;13757:21;13781:7;:19;13789:10;13781:19;;;;;;;;;;;;;;;13757:43;;13811:16;13877:1;13845:16;:28;13862:10;13845:28;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;13842:329;;;13925:1;13894:16;:28;13911:10;13894:28;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;13952:1;13941:12;;13842:329;;;14013:8;;14009:2;:12;;;;:::i;:::-;13999:6;:23;;;;:::i;:::-;13988:8;;:34;13985:175;;;14053:1;14042:12;;13985:175;;;14103:8;;14099:2;:12;;;;:::i;:::-;14089:6;:23;;;;:::i;:::-;14078:8;;:34;14075:85;;;14143:1;14132:12;;14075:85;13985:175;13842:329;14192:6;:15;;14213:189;;;;;;;;14240:1;14213:189;;;;14264:6;14213:189;;;;14298:15;14213:189;;;;;;14342:15;14213:189;;;;14382:8;14213:189;;;14192:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14430:10;14421:53;;;14442:6;14457:15;14421:53;;;;;;;:::i;:::-;;;;;;;;14483:15;14501:24;14514:6;14521:3;14501:12;:24::i;:::-;14483:42;;14531:32;14548:3;;;;;;;;;;;14561:1;14553:7;:9;;;;:::i;:::-;14531:3;;;;;;;;;;;:16;;;;:32;;;;;:::i;:::-;14568:33;14585:4;;;;;;;;;;;14599:1;14591:7;:9;;;;:::i;:::-;14568:3;;;;;;;;;;;:16;;;;:33;;;;;:::i;:::-;14639:6;14614;:21;;;:31;;;;;;;:::i;:::-;;;;;;;;14678:6;14666:8;;:18;;;;;;;:::i;:::-;;;;;;;;14708:7;14695:9;;:20;;;;;;;:::i;:::-;;;;;;;;14726:37;14744:10;14756:6;14726:17;:37::i;:::-;13253:1518;;;;;:::o;15663:850::-;15736:1;15714:6;:18;15721:10;15714:18;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;15706:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;15766:21;15790:7;:19;15798:10;15790:19;;;;;;;;;;;;;;;15766:43;;15840:1;15825:11;;;;;;;;;;;:16;;;15822:149;;;15917:7;;11350:8;15911:13;;;;:::i;:::-;15887:6;:20;;;;;;;;;;;;:38;;;;;;:::i;:::-;15867:15;:59;;15858:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;15822:149;15988:27;16004:10;15988:15;:27::i;:::-;16066:8;;16062:2;:12;;;;:::i;:::-;16056:2;:19;;;;:::i;:::-;16036:6;:16;;;:39;;16028:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;16119:14;16137:6;:16;;;16119:34;;16183:1;16164:6;:16;;:20;;;;16231:6;16205;:22;;;:32;;;;;;;:::i;:::-;;;;;;;;16252:36;16269:10;16281:6;16252:3;;;;;;;;;;;:16;;;;:36;;;;;:::i;:::-;16306:10;16298:27;;;16318:6;16298:27;;;;;;:::i;:::-;;;;;;;;16334:15;16352:24;16365:6;16372:3;16352:12;:24::i;:::-;16334:42;;16381:33;16398:4;;;;;;;;;;;16412:1;16404:7;:9;;;;:::i;:::-;16381:3;;;;;;;;;;;:16;;;;:33;;;;;:::i;:::-;16425:32;16442:3;;;;;;;;;;;16455:1;16447:7;:9;;;;:::i;:::-;16425:3;;;;;;;;;;;:16;;;;:32;;;;;:::i;:::-;16494:7;16485:6;:16;;;;:::i;:::-;16472:9;;:29;;;;;;;:::i;:::-;;;;;;;;15663:850;;;:::o;19813:364::-;19940:12;19993:6;19965:7;:19;19973:10;19965:19;;;;;;;;;;;;;;;:25;;:34;;;;;;;;;;;;:::i;:::-;;20041:6;20010:7;:19;20018:10;20010:19;;;;;;;;;;;;;;;:28;;:37;;;;;;;;;;;;:::i;:::-;;20090:6;20058:7;:19;20066:10;20058:19;;;;;;;;;;;;;;;:29;;:38;;;;;;;;;;;;:::i;:::-;;20138:9;20107:7;:19;20115:10;20107:19;;;;;;;;;;;;;;;:28;;:40;;;;;;;;;;;;:::i;:::-;;20165:4;20158:11;;19813:364;;;;;;:::o;12701:24::-;;;;:::o;19505:150::-;19572:12;7566;:10;:12::i;:::-;7556:22;;:6;;;;;;;;;;:22;;;7548:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19619:6:::1;19597:19;;:28;;;;;;;;;;;;;;;;;;19643:4;19636:11;;19505:150:::0;;;:::o;21093:136::-;21156:12;7566;:10;:12::i;:::-;7556:22;;:6;;;;;;;;;;:22;;;7548:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21198:1:::1;21181:6;:14;21188:6;21181:14;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;21217:4;21210:11;;21093:136:::0;;;:::o;19667:138::-;19718:7;19752:19;;;;;;;;;;;19745:37;;;19791:4;19745:52;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19738:59;;19667:138;:::o;7641:136::-;7566:12;:10;:12::i;:::-;7556:22;;:6;;;;;;;;;;:22;;;7548:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7738:1:::1;7701:40;;7722:6;::::0;::::1;;;;;;;;7701:40;;;;;;;;;;;;7767:1;7750:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;7641:136::o:0;11603:25::-;;;;:::o;11632:20::-;;;;:::o;11284:28::-;;;;;;;;;;;;;:::o;23241:329::-;23330:16;23364:21;23388:7;:14;23396:5;23388:14;;;;;;;;;;;;;;;23364:38;;23413:19;23435:6;:17;;23453:1;23435:20;;;;;;;;;;;;;;;;;;;;;;;23413:42;;23476:1;23469:5;:8;;;23466:69;;;23499:6;:17;;23517:5;23499:24;;;;;;;;;;;;;;;;;;;;;;;23493:30;;23466:69;23552:2;:9;;;;;;;;;;;;23545:17;;;;23241:329;;;;;:::o;11209:27::-;;;;;;;;;;;;;:::o;20185:168::-;20263:12;7566;:10;:12::i;:::-;7556:22;;:6;;;;;;;;;;:22;;;7548:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20318:5:::1;20293:7;:15;20301:6;20293:15;;;;;;;;;;;;;;;:22;;;:30;;;;;;;;;;;;;;;;;;20341:4;20334:11;;20185:168:::0;;;;:::o;24066:85::-;24109:7;24136;:5;:7::i;:::-;24129:14;;24066:85;:::o;11572:22::-;;;;:::o;21237:223::-;21312:12;7566;:10;:12::i;:::-;7556:22;;:6;;;;;;;;;;:22;;;7548:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21342:9:::1;21337:94;21359:7;:14;21355:1;:18;21337:94;;;21395:24;21408:7;21416:1;21408:10;;;;;;;;;;;;;;;;;;;;;;21395:12;:24::i;:::-;;21375:3;;;;;:::i;:::-;;;;21337:94;;;;21448:4;21441:11;;21237:223:::0;;;:::o;7429:77::-;7467:7;7492:6;;;;;;;;;;;7485:13;;7429:77;:::o;12570:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11243:26::-;;;;;;;;;;;;;:::o;19176:321::-;19235:16;19278:1;19261:6;:13;19268:5;19261:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;19258:36;;;19290:1;19283:8;;;;19258:36;19304:21;19328:7;:14;19336:5;19328:14;;;;;;;;;;;;;;;19304:38;;19381:1;19356:6;:15;;:22;;;;:26;19353:118;;;19450:7;;11350:8;19444:13;;;;:::i;:::-;19420:6;:20;;;;;;;;;;;;:38;;;;;;:::i;:::-;19406:53;;;;;19353:118;19488:1;19481:8;;;19176:321;;;;:::o;12524:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;14779:875::-;14847:1;14825:6;:18;14832:10;14825:18;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;14817:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;14877:21;14901:7;:19;14909:10;14901:19;;;;;;;;;;;;;;;14877:43;;14933:27;14949:10;14933:15;:27::i;:::-;15011:8;;15007:2;:12;;;;:::i;:::-;15001:2;:19;;;;:::i;:::-;14981:6;:16;;;:39;;14973:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;15066:14;15084:6;:16;;;15066:34;;15130:1;15111:6;:16;;:20;;;;15172:6;15146;:22;;;:32;;;;;;;:::i;:::-;;;;;;;;15202:6;15189:9;;:19;;;;;;;:::i;:::-;;;;;;;;15224:6;:15;;15245:168;;;;;;;;15272:1;15245:168;;;;15296:6;15245:168;;;;15330:15;15245:168;;;;;;15374:1;15245:168;;;;15400:1;15245:168;;;15224:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15445:10;15432:57;;;15457:6;15472:15;15432:57;;;;;;;:::i;:::-;;;;;;;;15527:6;15502;:21;;;:31;;;;;;;:::i;:::-;;;;;;;;15571:6;15544;:23;;;:33;;;;;;;:::i;:::-;;;;;;;;15610:6;15598:8;;:18;;;;;;;:::i;:::-;;;;;;;;15635:6;15621:10;;:20;;;;;;;:::i;:::-;;;;;;;;14779:875;;:::o;10908:34::-;;;;;;;;;;;;;:::o;20658:137::-;20720:12;7566;:10;:12::i;:::-;7556:22;;:6;;;;;;;;;;:22;;;7548:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20759:6:::1;20745:11;;:20;;;;;;;;;;;;;;;;;;20783:4;20776:11;;20658:137:::0;;;:::o;11544:24::-;;;;:::o;23578:374::-;23653:11;23666:14;23682:16;23700:15;23733:21;23757:7;:14;23765:5;23757:14;;;;;;;;;;;;;;;23733:38;;23782:16;23801:6;:15;;23817:5;23801:22;;;;;;;;;;;;;;;;;;;;;;;;;;23782:41;;23834:19;23856:6;:17;23863:3;:9;;;23856:17;;;;;;;;;;;23834:39;;23891:3;:8;;;;;;;;;;;;23901:3;:10;;;23913:5;:15;;;23930:5;:13;;;23884:60;;;;;;;;;;;23578:374;;;;;;;:::o;11513:24::-;;;;:::o;11451:23::-;;;;:::o;20509:133::-;20575:12;7566;:10;:12::i;:::-;7556:22;;:6;;;;;;;;;;:22;;;7548:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20606:6:::1;20600:3;;:12;;;;;;;;;;;;;;;;;;20630:4;20623:11;;20509:133:::0;;;:::o;12476:41::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20809:131::-;20865:12;7566;:10;:12::i;:::-;7556:22;;:6;;;;;;;;;;:22;;;7548:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20904:6:::1;20894:7;:16;;;;20928:4;20921:11;;20809:131:::0;;;:::o;22342:197::-;7566:12;:10;:12::i;:::-;7556:22;;:6;;;;;;;;;;:22;;;7548:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22429:9:::1;22424:108;22448:9;;:16;;22444:1;:20;22424:108;;;22519:1;22486:16;:30;22503:9;;22513:1;22503:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22486:30;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;22466:3;;;;;:::i;:::-;;;;22424:108;;;;22342:197:::0;;:::o;7785:107::-;7566:12;:10;:12::i;:::-;7556:22;;:6;;;;;;;;;;:22;;;7548:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7856:28:::1;7875:8;7856:18;:28::i;:::-;7785:107:::0;:::o;16524:976::-;16584:13;16624:1;16607:6;:13;16614:5;16607:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;16604:35;;;16635:1;16628:8;;;;16604:35;16649:21;16673:7;:14;16681:5;16673:14;;;;;;;;;;;;;;;16649:38;;16704:9;16700:770;16723:6;:15;;:22;;;;16719:1;:26;16700:770;;;16767:16;16786:6;:15;;16802:1;16786:18;;;;;;;;;;;;;;;;;;;;;;;;;;16767:37;;16819:19;16841:6;:17;16848:3;:9;;;16841:17;;;;;;;;;;;16819:39;;16875:16;16923:5;16905;:15;;;:23;;;;:::i;:::-;16894:3;:8;;;;;;;;;;;;:34;;;;;;:::i;:::-;16875:53;;16943:11;16980:3;:8;;;;;;;;;;;;16957:31;;:6;:20;;;;;;;;;;;;:31;;;:65;;17014:3;:8;;;;;;;;;;;;16957:65;;;16991:6;:20;;;;;;;;;;;;16957:65;16943:79;;17037:10;17068:8;17050:15;:26;:55;;17090:15;17050:55;;;17079:8;17050:55;17037:68;;17122:16;17178:7;17167:3;:8;;;;;;;;;;;;:18;;;;:::i;:::-;17160:25;;:4;:25;;;17157:87;;;17216:3;:12;;;17205:23;;17157:87;17270:2;17263:4;:9;;;17260:199;;;17435:7;17417:5;:15;;;17401:5;:13;;;17393:4;17388:9;;:2;:9;;;;:::i;:::-;17374:3;:10;;;:24;;;;:::i;:::-;:40;;;;:::i;:::-;:58;;;;:::i;:::-;:68;;;;:::i;:::-;17366:5;11437:4;17309:54;;17337:8;17328:4;17323:9;;:2;:9;;;;:::i;:::-;17309:3;:10;;;:24;;;;:::i;:::-;:36;;;;:::i;:::-;:54;;;;:::i;:::-;:62;;;;:::i;:::-;17301:5;:70;;;;:::i;:::-;:141;;;;:::i;:::-;17293:149;;17260:199;16700:770;;;;;;16747:3;;;;;:::i;:::-;;;;16700:770;;;;17480:12;16524:976;;;;:::o;12643:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;6733:98::-;6786:7;6813:10;6806:17;;6733:98;:::o;4617:211::-;4734:86;4754:5;4784:23;;;4809:2;4813:5;4761:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4734:19;:86::i;:::-;4617:211;;;:::o;4836:248::-;4980:96;5000:5;5030:27;;;5059:4;5065:2;5069:5;5007:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4980:19;:96::i;:::-;4836:248;;;;:::o;17805:559::-;17915:1;17882:35;;:7;:14;17890:5;17882:14;;;;;;;;;;;;;;;:21;;;;;;;;;;;;:35;;;:55;;;;;17930:7;:5;:7::i;:::-;17921:16;;:5;:16;;;;17882:55;17879:478;;;18011:1;17976:7;:16;17984:7;17976:16;;;;;;;;;;;;;;;:31;;;:36;17973:93;;18043:7;:5;:7::i;:::-;18033:17;;17973:93;18118:7;18094;:14;18102:5;18094:14;;;;;;;;;;;;;;;:21;;;:31;;;;;;;;;;;;;;;;;;18140:7;:16;18148:7;18140:16;;;;;;;;;;;;;;;:26;;18167:1;18140:29;;;;;;;;;;;;;;;;;:31;;;;;;;;;:::i;:::-;;;;;;18188:17;18208:7;:16;18216:7;18208:16;;;;;;;;;;;;;;;18188:36;;18239:2;:13;;18258:84;;;;;;;;18293:1;18258:84;;;;;;18321:5;18258:84;;;;;18239:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17879:478;;17805:559;;:::o;9821:98::-;9879:7;9910:1;9906;:5;;;;:::i;:::-;9899:12;;9821:98;;;;:::o;18389:595::-;18467:10;18480:7;:14;18488:5;18480:14;;;;;;;;;;;;;;;:21;;;;;;;;;;;;18467:34;;18531:1;18517:16;;:2;:16;;;18514:28;;;18535:7;;;18514:28;18569:1;18555:6;:10;18562:2;18555:10;;;;;;;;;;;;;;;;;;;;;;;;;:15;;;18552:421;;;18593:19;18615:2;18593:24;;18666:7;18653:10;;:20;;;;:::i;:::-;18635:15;:38;18632:93;;;18707:2;18693:16;;18632:93;18732:13;11437:4;18748:39;;18758:11;18748:7;:21;;;;:::i;:::-;:39;;;;:::i;:::-;18732:55;;18801:27;18818:2;18822:5;18801:3;;;;;;;;;;;:16;;;;:27;;;;;:::i;:::-;18870:5;18839:7;:11;18847:2;18839:11;;;;;;;;;;;;;;;:27;;;:36;;;;;;;:::i;:::-;;;;;;;;18912:5;18881:7;:11;18889:2;18881:11;;;;;;;;;;;;;;;:27;;;:36;;;;;;;:::i;:::-;;;;;;;;18938:5;18925:9;;:18;;;;;;;:::i;:::-;;;;;;;;18962:5;18949:9;;:18;;;;;;;:::i;:::-;;;;;;;;18552:421;;;18389:595;;;;:::o;17511:278::-;17570:14;17587:4;:18;;;17606:5;17587:25;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17570:42;;17637:1;17628:6;:10;17625:157;;;17705:15;17667:7;:14;17675:5;17667:14;;;;;;;;;;;;;;;:28;;;:54;;;;;;;;;;;;;;;;;;17764:6;17736:7;:14;17744:5;17736:14;;;;;;;;;;;;;;;:24;;;:34;;;;;;;:::i;:::-;;;;;;;;17625:157;17511:278;;:::o;21466:834::-;21522:12;21578:1;21560:6;:14;21567:6;21560:14;;;;;;;;;;;;;;;;;;;;;;;;;:19;;;21557:40;;;21589:5;21582:12;;;;21557:40;21607:21;21631:7;:15;21639:6;21631:15;;;;;;;;;;;;;;;21607:39;;21686:1;21661:6;:21;;;:26;21658:69;;;21710:5;21703:12;;;;;21658:69;21737:14;21770:9;21766:260;21789:6;:15;;:22;;;;21785:1;:26;21766:260;;;21833:16;21852:6;:15;;21868:1;21852:18;;;;;;;;;;;;;;;;;;;;;;;;;;21833:37;;21906:1;21888:3;:15;;;:19;:71;;;;;21950:7;21931:3;:15;;;:27;;;;:::i;:::-;21912:15;:46;;21888:71;21885:130;;;21989:3;:10;;;21979:20;;;;;:::i;:::-;;;21885:130;21766:260;21813:3;;;;;:::i;:::-;;;;21766:260;;;;22049:1;22039:6;:11;22036:54;;;22073:5;22066:12;;;;;;22036:54;22119:6;22094;:21;;;:31;;;;;;;:::i;:::-;;;;;;;;22143:6;22130:9;;:19;;;;;;;:::i;:::-;;;;;;;;22165:6;22154:7;;:17;;;;;;;:::i;:::-;;;;;;;;22182:32;22199:6;22207;22182:3;;;;;;;;;;;:16;;;;:32;;;;;:::i;:::-;22232:6;22224:23;;;22240:6;22224:23;;;;;;:::i;:::-;;;;;;;;22269:1;22252:6;:14;22259:6;22252:14;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;22288:4;22281:11;;;;21466:834;;;;:::o;7900:223::-;7992:1;7972:22;;:8;:22;;;;7964:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8080:8;8051:38;;8072:6;;;;;;;;;;8051:38;;;;;;;;;;;;8107:8;8098:6;;:17;;;;;;;;;;;;;;;;;;7900:223;:::o;6344:347::-;6425:23;6451:69;6479:4;6451:69;;;;;;;;;;;;;;;;;6459:5;6451:27;;;;:69;;;;;:::i;:::-;6425:95;;6555:1;6535:10;:17;:21;6531:153;;;6606:10;6595:30;;;;;;;;;;;;:::i;:::-;6587:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6531:153;6344:347;;;:::o;1694:229::-;1831:12;1863:52;1885:6;1893:4;1899:1;1902:12;1863:21;:52::i;:::-;1856:59;;1694:229;;;;;:::o;2207:510::-;2377:12;2435:5;2410:21;:30;;2402:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;2502:18;2513:6;2502:10;:18::i;:::-;2494:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;2568:12;2582:23;2609:6;:11;;2628:5;2635:4;2609:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2567:73;;;;2658:51;2675:7;2684:10;2696:12;2658:16;:51::i;:::-;2651:58;;;;2207:510;;;;;;:::o;972:196::-;1032:4;1049:12;1116:7;1104:20;1096:28;;1159:1;1152:4;:8;1145:15;;;972:196;;;:::o;3967:584::-;4117:12;4146:7;4142:402;;;4177:10;4170:17;;;;4142:402;4258:1;4238:10;:17;:21;4234:299;;;4361:10;4355:17;4422:15;4409:10;4405:2;4401:19;4394:44;4309:148;4504:12;4497:20;;;;;;;;;;;:::i;:::-;;;;;;;;3967:584;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;24:655: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:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:345::-;763:5;788:66;804:49;846:6;804:49;:::i;:::-;788:66;:::i;:::-;779:75;;877:6;870:5;863:21;915:4;908:5;904:16;953:3;944:6;939:3;935:16;932:25;929:2;;;970:1;967;960:12;929:2;983:41;1017:6;1012:3;1007;983:41;:::i;:::-;769:261;;;;;;:::o;1036:139::-;1082:5;1120:6;1107:20;1098:29;;1136:33;1163:5;1136:33;:::i;:::-;1088:87;;;;:::o;1181:155::-;1235:5;1273:6;1260:20;1251:29;;1289:41;1324:5;1289:41;:::i;:::-;1241:95;;;;:::o;1359:367::-;1432:8;1442:6;1492:3;1485:4;1477:6;1473:17;1469:27;1459:2;;1510:1;1507;1500:12;1459:2;1546:6;1533:20;1523:30;;1576:18;1568:6;1565:30;1562:2;;;1608:1;1605;1598:12;1562:2;1645:4;1637:6;1633:17;1621:29;;1699:3;1691:4;1683:6;1679:17;1669:8;1665:32;1662:41;1659:2;;;1716:1;1713;1706:12;1659:2;1449:277;;;;;:::o;1749:303::-;1820:5;1869:3;1862:4;1854:6;1850:17;1846:27;1836:2;;1887:1;1884;1877:12;1836:2;1927:6;1914:20;1952:94;2042:3;2034:6;2027:4;2019:6;2015:17;1952:94;:::i;:::-;1943:103;;1826:226;;;;;:::o;2058:137::-;2112:5;2143:6;2137:13;2128:22;;2159:30;2183:5;2159:30;:::i;:::-;2118:77;;;;:::o;2215:273::-;2271:5;2320:3;2313:4;2305:6;2301:17;2297:27;2287:2;;2338:1;2335;2328:12;2287:2;2378:6;2365:20;2403:79;2478:3;2470:6;2463:4;2455:6;2451:17;2403:79;:::i;:::-;2394:88;;2277:211;;;;;:::o;2494:139::-;2540:5;2578:6;2565:20;2556:29;;2594:33;2621:5;2594:33;:::i;:::-;2546:87;;;;:::o;2639:143::-;2696:5;2727:6;2721:13;2712:22;;2743:33;2770:5;2743:33;:::i;:::-;2702:80;;;;:::o;2788:135::-;2832:5;2870:6;2857:20;2848:29;;2886:31;2911:5;2886:31;:::i;:::-;2838:85;;;;:::o;2929:262::-;2988:6;3037:2;3025:9;3016:7;3012:23;3008:32;3005:2;;;3053:1;3050;3043:12;3005:2;3096:1;3121:53;3166:7;3157:6;3146:9;3142:22;3121:53;:::i;:::-;3111:63;;3067:117;2995:196;;;;:::o;3197:278::-;3264:6;3313:2;3301:9;3292:7;3288:23;3284:32;3281:2;;;3329:1;3326;3319:12;3281:2;3372:1;3397:61;3450:7;3441:6;3430:9;3426:22;3397:61;:::i;:::-;3387:71;;3343:125;3271:204;;;;:::o;3481:407::-;3549:6;3557;3606:2;3594:9;3585:7;3581:23;3577:32;3574:2;;;3622:1;3619;3612:12;3574:2;3665:1;3690:53;3735:7;3726:6;3715:9;3711:22;3690:53;:::i;:::-;3680:63;;3636:117;3792:2;3818:53;3863:7;3854:6;3843:9;3839:22;3818:53;:::i;:::-;3808:63;;3763:118;3564:324;;;;;:::o;3894:407::-;3962:6;3970;4019:2;4007:9;3998:7;3994:23;3990:32;3987:2;;;4035:1;4032;4025:12;3987:2;4078:1;4103:53;4148:7;4139:6;4128:9;4124:22;4103:53;:::i;:::-;4093:63;;4049:117;4205:2;4231:53;4276:7;4267:6;4256:9;4252:22;4231:53;:::i;:::-;4221:63;;4176:118;3977:324;;;;;:::o;4307:548::-;4382:6;4390;4398;4447:2;4435:9;4426:7;4422:23;4418:32;4415:2;;;4463:1;4460;4453:12;4415:2;4506:1;4531:53;4576:7;4567:6;4556:9;4552:22;4531:53;:::i;:::-;4521:63;;4477:117;4633:2;4659:51;4702:7;4693:6;4682:9;4678:22;4659:51;:::i;:::-;4649:61;;4604:116;4759:2;4785:53;4830:7;4821:6;4810:9;4806:22;4785:53;:::i;:::-;4775:63;;4730:118;4405:450;;;;;:::o;4861:425::-;4947:6;4955;5004:2;4992:9;4983:7;4979:23;4975:32;4972:2;;;5020:1;5017;5010:12;4972:2;5091:1;5080:9;5076:17;5063:31;5121:18;5113:6;5110:30;5107:2;;;5153:1;5150;5143:12;5107:2;5189:80;5261:7;5252:6;5241:9;5237:22;5189:80;:::i;:::-;5171:98;;;;5034:245;4962:324;;;;;:::o;5292:405::-;5376:6;5425:2;5413:9;5404:7;5400:23;5396:32;5393:2;;;5441:1;5438;5431:12;5393:2;5512:1;5501:9;5497:17;5484:31;5542:18;5534:6;5531:30;5528:2;;;5574:1;5571;5564:12;5528:2;5602:78;5672:7;5663:6;5652:9;5648:22;5602:78;:::i;:::-;5592:88;;5455:235;5383:314;;;;:::o;5703:278::-;5770:6;5819:2;5807:9;5798:7;5794:23;5790:32;5787:2;;;5835:1;5832;5825:12;5787:2;5878:1;5903:61;5956:7;5947:6;5936:9;5932:22;5903:61;:::i;:::-;5893:71;;5849:125;5777:204;;;;:::o;5987:1150::-;6113:6;6121;6129;6137;6186:3;6174:9;6165:7;6161:23;6157:33;6154:2;;;6203:1;6200;6193:12;6154:2;6274:1;6263:9;6259:17;6246:31;6304:18;6296:6;6293:30;6290:2;;;6336:1;6333;6326:12;6290:2;6364:63;6419:7;6410:6;6399:9;6395:22;6364:63;:::i;:::-;6354:73;;6217:220;6504:2;6493:9;6489:18;6476:32;6535:18;6527:6;6524:30;6521:2;;;6567:1;6564;6557:12;6521:2;6595:63;6650:7;6641:6;6630:9;6626:22;6595:63;:::i;:::-;6585:73;;6447:221;6735:2;6724:9;6720:18;6707:32;6766:18;6758:6;6755:30;6752:2;;;6798:1;6795;6788:12;6752:2;6826:63;6881:7;6872:6;6861:9;6857:22;6826:63;:::i;:::-;6816:73;;6678:221;6966:2;6955:9;6951:18;6938:32;6997:18;6989:6;6986:30;6983:2;;;7029:1;7026;7019:12;6983:2;7057:63;7112:7;7103:6;7092:9;7088:22;7057:63;:::i;:::-;7047:73;;6909:221;6144:993;;;;;;;:::o;7143:262::-;7202:6;7251:2;7239:9;7230:7;7226:23;7222:32;7219:2;;;7267:1;7264;7257:12;7219:2;7310:1;7335:53;7380:7;7371:6;7360:9;7356:22;7335:53;:::i;:::-;7325:63;;7281:117;7209:196;;;;:::o;7411:284::-;7481:6;7530:2;7518:9;7509:7;7505:23;7501:32;7498:2;;;7546:1;7543;7536:12;7498:2;7589:1;7614:64;7670:7;7661:6;7650:9;7646:22;7614:64;:::i;:::-;7604:74;;7560:128;7488:207;;;;:::o;7701:258::-;7758:6;7807:2;7795:9;7786:7;7782:23;7778:32;7775:2;;;7823:1;7820;7813:12;7775:2;7866:1;7891:51;7934:7;7925:6;7914:9;7910:22;7891:51;:::i;:::-;7881:61;;7837:115;7765:194;;;;:::o;7965:179::-;8034:10;8055:46;8097:3;8089:6;8055:46;:::i;:::-;8133:4;8128:3;8124:14;8110:28;;8045:99;;;;:::o;8150:142::-;8253:32;8279:5;8253:32;:::i;:::-;8248:3;8241:45;8231:61;;:::o;8298:118::-;8385:24;8403:5;8385:24;:::i;:::-;8380:3;8373:37;8363:53;;:::o;8454:694::-;8590:52;8636:5;8590:52;:::i;:::-;8658:84;8735:6;8730:3;8658:84;:::i;:::-;8651:91;;8766:54;8814:5;8766:54;:::i;:::-;8843:7;8874:1;8859:282;8884:6;8881:1;8878:13;8859:282;;;8960:6;8954:13;8987:63;9046:3;9031:13;8987:63;:::i;:::-;8980:70;;9073:58;9124:6;9073:58;:::i;:::-;9063:68;;8919:222;8906:1;8903;8899:9;8894:14;;8859:282;;;8863:14;8566:582;;;;;:::o;9154:109::-;9235:21;9250:5;9235:21;:::i;:::-;9230:3;9223:34;9213:50;;:::o;9269:373::-;9373:3;9401:38;9433:5;9401:38;:::i;:::-;9455:88;9536:6;9531:3;9455:88;:::i;:::-;9448:95;;9552:52;9597:6;9592:3;9585:4;9578:5;9574:16;9552:52;:::i;:::-;9629:6;9624:3;9620:16;9613:23;;9377:265;;;;;:::o;9648:157::-;9748:50;9792:5;9748:50;:::i;:::-;9743:3;9736:63;9726:79;;:::o;9811:364::-;9899:3;9927:39;9960:5;9927:39;:::i;:::-;9982:71;10046:6;10041:3;9982:71;:::i;:::-;9975:78;;10062:52;10107:6;10102:3;10095:4;10088:5;10084:16;10062:52;:::i;:::-;10139:29;10161:6;10139:29;:::i;:::-;10134:3;10130:39;10123:46;;9903:272;;;;;:::o;10181:366::-;10323:3;10344:67;10408:2;10403:3;10344:67;:::i;:::-;10337:74;;10420:93;10509:3;10420:93;:::i;:::-;10538:2;10533:3;10529:12;10522:19;;10327:220;;;:::o;10553:366::-;10695:3;10716:67;10780:2;10775:3;10716:67;:::i;:::-;10709:74;;10792:93;10881:3;10792:93;:::i;:::-;10910:2;10905:3;10901:12;10894:19;;10699:220;;;:::o;10925:366::-;11067:3;11088:67;11152:2;11147:3;11088:67;:::i;:::-;11081:74;;11164:93;11253:3;11164:93;:::i;:::-;11282:2;11277:3;11273:12;11266:19;;11071:220;;;:::o;11297:366::-;11439:3;11460:67;11524:2;11519:3;11460:67;:::i;:::-;11453:74;;11536:93;11625:3;11536:93;:::i;:::-;11654:2;11649:3;11645:12;11638:19;;11443:220;;;:::o;11669:366::-;11811:3;11832:67;11896:2;11891:3;11832:67;:::i;:::-;11825:74;;11908:93;11997:3;11908:93;:::i;:::-;12026:2;12021:3;12017:12;12010:19;;11815:220;;;:::o;12041:366::-;12183:3;12204:67;12268:2;12263:3;12204:67;:::i;:::-;12197:74;;12280:93;12369:3;12280:93;:::i;:::-;12398:2;12393:3;12389:12;12382:19;;12187:220;;;:::o;12413:366::-;12555:3;12576:67;12640:2;12635:3;12576:67;:::i;:::-;12569:74;;12652:93;12741:3;12652:93;:::i;:::-;12770:2;12765:3;12761:12;12754:19;;12559:220;;;:::o;12785:366::-;12927:3;12948:67;13012:2;13007:3;12948:67;:::i;:::-;12941:74;;13024:93;13113:3;13024:93;:::i;:::-;13142:2;13137:3;13133:12;13126:19;;12931:220;;;:::o;13157:366::-;13299:3;13320:67;13384:2;13379:3;13320:67;:::i;:::-;13313:74;;13396:93;13485:3;13396:93;:::i;:::-;13514:2;13509:3;13505:12;13498:19;;13303:220;;;:::o;13529:366::-;13671:3;13692:67;13756:2;13751:3;13692:67;:::i;:::-;13685:74;;13768:93;13857:3;13768:93;:::i;:::-;13886:2;13881:3;13877:12;13870:19;;13675:220;;;:::o;13901:366::-;14043:3;14064:67;14128:2;14123:3;14064:67;:::i;:::-;14057:74;;14140:93;14229:3;14140:93;:::i;:::-;14258:2;14253:3;14249:12;14242:19;;14047:220;;;:::o;14273:366::-;14415:3;14436:67;14500:2;14495:3;14436:67;:::i;:::-;14429:74;;14512:93;14601:3;14512:93;:::i;:::-;14630:2;14625:3;14621:12;14614:19;;14419:220;;;:::o;14645:366::-;14787:3;14808:67;14872:2;14867:3;14808:67;:::i;:::-;14801:74;;14884:93;14973:3;14884:93;:::i;:::-;15002:2;14997:3;14993:12;14986:19;;14791:220;;;:::o;15017:108::-;15094:24;15112:5;15094:24;:::i;:::-;15089:3;15082:37;15072:53;;:::o;15131:118::-;15218:24;15236:5;15218:24;:::i;:::-;15213:3;15206:37;15196:53;;:::o;15255:115::-;15340:23;15357:5;15340:23;:::i;:::-;15335:3;15328:36;15318:52;;:::o;15376:112::-;15459:22;15475:5;15459:22;:::i;:::-;15454:3;15447:35;15437:51;;:::o;15494:271::-;15624:3;15646:93;15735:3;15726:6;15646:93;:::i;:::-;15639:100;;15756:3;15749:10;;15628:137;;;;:::o;15771:222::-;15864:4;15902:2;15891:9;15887:18;15879:26;;15915:71;15983:1;15972:9;15968:17;15959:6;15915:71;:::i;:::-;15869:124;;;;:::o;15999:254::-;16108:4;16146:2;16135:9;16131:18;16123:26;;16159:87;16243:1;16232:9;16228:17;16219:6;16159:87;:::i;:::-;16113:140;;;;:::o;16259:442::-;16408:4;16446:2;16435:9;16431:18;16423:26;;16459:71;16527:1;16516:9;16512:17;16503:6;16459:71;:::i;:::-;16540:72;16608:2;16597:9;16593:18;16584:6;16540:72;:::i;:::-;16622;16690:2;16679:9;16675:18;16666:6;16622:72;:::i;:::-;16413:288;;;;;;:::o;16707:332::-;16828:4;16866:2;16855:9;16851:18;16843:26;;16879:71;16947:1;16936:9;16932:17;16923:6;16879:71;:::i;:::-;16960:72;17028:2;17017:9;17013:18;17004:6;16960:72;:::i;:::-;16833:206;;;;;:::o;17045:210::-;17132:4;17170:2;17159:9;17155:18;17147:26;;17183:65;17245:1;17234:9;17230:17;17221:6;17183:65;:::i;:::-;17137:118;;;;:::o;17261:248::-;17367:4;17405:2;17394:9;17390:18;17382:26;;17418:84;17499:1;17488:9;17484:17;17475:6;17418:84;:::i;:::-;17372:137;;;;:::o;17515:313::-;17628:4;17666:2;17655:9;17651:18;17643:26;;17715:9;17709:4;17705:20;17701:1;17690:9;17686:17;17679:47;17743:78;17816:4;17807:6;17743:78;:::i;:::-;17735:86;;17633:195;;;;:::o;17834:1805::-;18315:4;18353:3;18342:9;18338:19;18330:27;;18403:9;18397:4;18393:20;18389:1;18378:9;18374:17;18367:47;18431:78;18504:4;18495:6;18431:78;:::i;:::-;18423:86;;18556:9;18550:4;18546:20;18541:2;18530:9;18526:18;18519:48;18584:78;18657:4;18648:6;18584:78;:::i;:::-;18576:86;;18709:9;18703:4;18699:20;18694:2;18683:9;18679:18;18672:48;18737:78;18810:4;18801:6;18737:78;:::i;:::-;18729:86;;18862:9;18856:4;18852:20;18847:2;18836:9;18832:18;18825:48;18890:78;18963:4;18954:6;18890:78;:::i;:::-;18882:86;;18978:73;19046:3;19035:9;19031:19;19022:6;18978:73;:::i;:::-;19061;19129:3;19118:9;19114:19;19105:6;19061:73;:::i;:::-;19144;19212:3;19201:9;19197:19;19188:6;19144:73;:::i;:::-;19227;19295:3;19284:9;19280:19;19271:6;19227:73;:::i;:::-;19310;19378:3;19367:9;19363:19;19354:6;19310:73;:::i;:::-;19393;19461:3;19450:9;19446:19;19437:6;19393:73;:::i;:::-;19476:74;19545:3;19534:9;19530:19;19520:7;19476:74;:::i;:::-;19560:72;19627:3;19616:9;19612:19;19602:7;19560:72;:::i;:::-;18320:1319;;;;;;;;;;;;;;;:::o;19645:419::-;19811:4;19849:2;19838:9;19834:18;19826:26;;19898:9;19892:4;19888:20;19884:1;19873:9;19869:17;19862:47;19926:131;20052:4;19926:131;:::i;:::-;19918:139;;19816:248;;;:::o;20070:419::-;20236:4;20274:2;20263:9;20259:18;20251:26;;20323:9;20317:4;20313:20;20309:1;20298:9;20294:17;20287:47;20351:131;20477:4;20351:131;:::i;:::-;20343:139;;20241:248;;;:::o;20495:419::-;20661:4;20699:2;20688:9;20684:18;20676:26;;20748:9;20742:4;20738:20;20734:1;20723:9;20719:17;20712:47;20776:131;20902:4;20776:131;:::i;:::-;20768:139;;20666:248;;;:::o;20920:419::-;21086:4;21124:2;21113:9;21109:18;21101:26;;21173:9;21167:4;21163:20;21159:1;21148:9;21144:17;21137:47;21201:131;21327:4;21201:131;:::i;:::-;21193:139;;21091:248;;;:::o;21345:419::-;21511:4;21549:2;21538:9;21534:18;21526:26;;21598:9;21592:4;21588:20;21584:1;21573:9;21569:17;21562:47;21626:131;21752:4;21626:131;:::i;:::-;21618:139;;21516:248;;;:::o;21770:419::-;21936:4;21974:2;21963:9;21959:18;21951:26;;22023:9;22017:4;22013:20;22009:1;21998:9;21994:17;21987:47;22051:131;22177:4;22051:131;:::i;:::-;22043:139;;21941:248;;;:::o;22195:419::-;22361:4;22399:2;22388:9;22384:18;22376:26;;22448:9;22442:4;22438:20;22434:1;22423:9;22419:17;22412:47;22476:131;22602:4;22476:131;:::i;:::-;22468:139;;22366:248;;;:::o;22620:419::-;22786:4;22824:2;22813:9;22809:18;22801:26;;22873:9;22867:4;22863:20;22859:1;22848:9;22844:17;22837:47;22901:131;23027:4;22901:131;:::i;:::-;22893:139;;22791:248;;;:::o;23045:419::-;23211:4;23249:2;23238:9;23234:18;23226:26;;23298:9;23292:4;23288:20;23284:1;23273:9;23269:17;23262:47;23326:131;23452:4;23326:131;:::i;:::-;23318:139;;23216:248;;;:::o;23470:419::-;23636:4;23674:2;23663:9;23659:18;23651:26;;23723:9;23717:4;23713:20;23709:1;23698:9;23694:17;23687:47;23751:131;23877:4;23751:131;:::i;:::-;23743:139;;23641:248;;;:::o;23895:419::-;24061:4;24099:2;24088:9;24084:18;24076:26;;24148:9;24142:4;24138:20;24134:1;24123:9;24119:17;24112:47;24176:131;24302:4;24176:131;:::i;:::-;24168:139;;24066:248;;;:::o;24320:419::-;24486:4;24524:2;24513:9;24509:18;24501:26;;24573:9;24567:4;24563:20;24559:1;24548:9;24544:17;24537:47;24601:131;24727:4;24601:131;:::i;:::-;24593:139;;24491:248;;;:::o;24745:419::-;24911:4;24949:2;24938:9;24934:18;24926:26;;24998:9;24992:4;24988:20;24984:1;24973:9;24969:17;24962:47;25026:131;25152:4;25026:131;:::i;:::-;25018:139;;24916:248;;;:::o;25170:222::-;25263:4;25301:2;25290:9;25286:18;25278:26;;25314:71;25382:1;25371:9;25367:17;25358:6;25314:71;:::i;:::-;25268:124;;;;:::o;25398:332::-;25519:4;25557:2;25546:9;25542:18;25534:26;;25570:71;25638:1;25627:9;25623:17;25614:6;25570:71;:::i;:::-;25651:72;25719:2;25708:9;25704:18;25695:6;25651:72;:::i;:::-;25524:206;;;;;:::o;25736:645::-;25959:4;25997:3;25986:9;25982:19;25974:27;;26011:71;26079:1;26068:9;26064:17;26055:6;26011:71;:::i;:::-;26092:72;26160:2;26149:9;26145:18;26136:6;26092:72;:::i;:::-;26174;26242:2;26231:9;26227:18;26218:6;26174:72;:::i;:::-;26256:118;26370:2;26359:9;26355:18;26346:6;26256:118;:::i;:::-;25964:417;;;;;;;:::o;26387:328::-;26506:4;26544:2;26533:9;26529:18;26521:26;;26557:71;26625:1;26614:9;26610:17;26601:6;26557:71;:::i;:::-;26638:70;26704:2;26693:9;26689:18;26680:6;26638:70;:::i;:::-;26511:204;;;;;:::o;26721:218::-;26812:4;26850:2;26839:9;26835:18;26827:26;;26863:69;26929:1;26918:9;26914:17;26905:6;26863:69;:::i;:::-;26817:122;;;;:::o;26945:549::-;27120:4;27158:3;27147:9;27143:19;27135:27;;27172:69;27238:1;27227:9;27223:17;27214:6;27172:69;:::i;:::-;27251:72;27319:2;27308:9;27304:18;27295:6;27251:72;:::i;:::-;27333;27401:2;27390:9;27386:18;27377:6;27333:72;:::i;:::-;27415;27483:2;27472:9;27468:18;27459:6;27415:72;:::i;:::-;27125:369;;;;;;;:::o;27500:214::-;27589:4;27627:2;27616:9;27612:18;27604:26;;27640:67;27704:1;27693:9;27689:17;27680:6;27640:67;:::i;:::-;27594:120;;;;:::o;27720:129::-;27754:6;27781:20;;:::i;:::-;27771:30;;27810:33;27838:4;27830:6;27810:33;:::i;:::-;27761:88;;;:::o;27855:75::-;27888:6;27921:2;27915:9;27905:19;;27895:35;:::o;27936:311::-;28013:4;28103:18;28095:6;28092:30;28089:2;;;28125:18;;:::i;:::-;28089:2;28175:4;28167:6;28163:17;28155:25;;28235:4;28229;28225:15;28217:23;;28018:229;;;:::o;28253:308::-;28315:4;28405:18;28397:6;28394:30;28391:2;;;28427:18;;:::i;:::-;28391:2;28465:29;28487:6;28465:29;:::i;:::-;28457:37;;28549:4;28543;28539:15;28531:23;;28320:241;;;:::o;28567:98::-;28632:4;28655:3;28647:11;;28637:28;;;:::o;28671:104::-;28736:6;28764:4;28754:14;;28743:32;;;:::o;28781:98::-;28832:6;28866:5;28860:12;28850:22;;28839:40;;;:::o;28885:99::-;28937:6;28971:5;28965:12;28955:22;;28944:40;;;:::o;28990:111::-;29058:4;29090;29085:3;29081:14;29073:22;;29063:38;;;:::o;29107:143::-;29204:11;29241:3;29226:18;;29216:34;;;;:::o;29256:147::-;29357:11;29394:3;29379:18;;29369:34;;;;:::o;29409:169::-;29493:11;29527:6;29522:3;29515:19;29567:4;29562:3;29558:14;29543:29;;29505:73;;;;:::o;29584:305::-;29624:3;29643:20;29661:1;29643:20;:::i;:::-;29638:25;;29677:20;29695:1;29677:20;:::i;:::-;29672:25;;29831:1;29763:66;29759:74;29756:1;29753:81;29750:2;;;29837:18;;:::i;:::-;29750:2;29881:1;29878;29874:9;29867:16;;29628:261;;;;:::o;29895:248::-;29934:3;29953:19;29970:1;29953:19;:::i;:::-;29948:24;;29986:19;30003:1;29986:19;:::i;:::-;29981:24;;30085:1;30071:12;30067:20;30064:1;30061:27;30058:2;;;30091:18;;:::i;:::-;30058:2;30135:1;30132;30128:9;30121:16;;29938:205;;;;:::o;30149:185::-;30189:1;30206:20;30224:1;30206:20;:::i;:::-;30201:25;;30240:20;30258:1;30240:20;:::i;:::-;30235:25;;30279:1;30269:2;;30284:18;;:::i;:::-;30269:2;30326:1;30323;30319:9;30314:14;;30191:143;;;;:::o;30340:848::-;30401:5;30408:4;30432:6;30423:15;;30456:5;30447:14;;30470:712;30491:1;30481:8;30478:15;30470:712;;;30586:4;30581:3;30577:14;30571:4;30568:24;30565:2;;;30595:18;;:::i;:::-;30565:2;30645:1;30635:8;30631:16;30628:2;;;31060:4;31053:5;31049:16;31040:25;;30628:2;31110:4;31104;31100:15;31092:23;;31140:32;31163:8;31140:32;:::i;:::-;31128:44;;30470:712;;;30413:775;;;;;;;:::o;31194:285::-;31254:5;31278:23;31296:4;31278:23;:::i;:::-;31270:31;;31322:27;31340:8;31322:27;:::i;:::-;31310:39;;31368:104;31405:66;31395:8;31389:4;31368:104;:::i;:::-;31359:113;;31260:219;;;;:::o;31485:1073::-;31539:5;31730:8;31720:2;;31751:1;31742:10;;31753:5;;31720:2;31779:4;31769:2;;31796:1;31787:10;;31798:5;;31769:2;31865:4;31913:1;31908:27;;;;31949:1;31944:191;;;;31858:277;;31908:27;31926:1;31917:10;;31928:5;;;31944:191;31989:3;31979:8;31976:17;31973:2;;;31996:18;;:::i;:::-;31973:2;32045:8;32042:1;32038:16;32029:25;;32080:3;32073:5;32070:14;32067:2;;;32087:18;;:::i;:::-;32067:2;32120:5;;;31858:277;;32244:2;32234:8;32231:16;32225:3;32219:4;32216:13;32212:36;32194:2;32184:8;32181:16;32176:2;32170:4;32167:12;32163:35;32147:111;32144:2;;;32300:8;32294:4;32290:19;32281:28;;32335:3;32328:5;32325:14;32322:2;;;32342:18;;:::i;:::-;32322:2;32375:5;;32144:2;32415:42;32453:3;32443:8;32437:4;32434:1;32415:42;:::i;:::-;32400:57;;;;32489:4;32484:3;32480:14;32473:5;32470:25;32467:2;;;32498:18;;:::i;:::-;32467:2;32547:4;32540:5;32536:16;32527:25;;31545:1013;;;;;;:::o;32564:348::-;32604:7;32627:20;32645:1;32627:20;:::i;:::-;32622:25;;32661:20;32679:1;32661:20;:::i;:::-;32656:25;;32849:1;32781:66;32777:74;32774:1;32771:81;32766:1;32759:9;32752:17;32748:105;32745:2;;;32856:18;;:::i;:::-;32745:2;32904:1;32901;32897:9;32886:20;;32612:300;;;;:::o;32918:191::-;32958:4;32978:20;32996:1;32978:20;:::i;:::-;32973:25;;33012:20;33030:1;33012:20;:::i;:::-;33007:25;;33051:1;33048;33045:8;33042:2;;;33056:18;;:::i;:::-;33042:2;33101:1;33098;33094:9;33086:17;;32963:146;;;;:::o;33115:96::-;33152:7;33181:24;33199:5;33181:24;:::i;:::-;33170:35;;33160:51;;;:::o;33217:104::-;33262:7;33291:24;33309:5;33291:24;:::i;:::-;33280:35;;33270:51;;;:::o;33327:90::-;33361:7;33404:5;33397:13;33390:21;33379:32;;33369:48;;;:::o;33423:126::-;33460:7;33500:42;33493:5;33489:54;33478:65;;33468:81;;;:::o;33555:77::-;33592:7;33621:5;33610:16;;33600:32;;;:::o;33638:95::-;33674:7;33714:12;33707:5;33703:24;33692:35;;33682:51;;;:::o;33739:86::-;33774:7;33814:4;33807:5;33803:16;33792:27;;33782:43;;;:::o;33831:152::-;33894:9;33927:50;33971:5;33927:50;:::i;:::-;33914:63;;33904:79;;;:::o;33989:126::-;34052:9;34085:24;34103:5;34085:24;:::i;:::-;34072:37;;34062:53;;;:::o;34121:154::-;34205:6;34200:3;34195;34182:30;34267:1;34258:6;34253:3;34249:16;34242:27;34172:103;;;:::o;34281:307::-;34349:1;34359:113;34373:6;34370:1;34367:13;34359:113;;;34458:1;34453:3;34449:11;34443:18;34439:1;34434:3;34430:11;34423:39;34395:2;34392:1;34388:10;34383:15;;34359:113;;;34490:6;34487:1;34484:13;34481:2;;;34570:1;34561:6;34556:3;34552:16;34545:27;34481:2;34330:258;;;;:::o;34594:320::-;34638:6;34675:1;34669:4;34665:12;34655:22;;34722:1;34716:4;34712:12;34743:18;34733:2;;34799:4;34791:6;34787:17;34777:27;;34733:2;34861;34853:6;34850:14;34830:18;34827:38;34824:2;;;34880:18;;:::i;:::-;34824:2;34645:269;;;;:::o;34920:281::-;35003:27;35025:4;35003:27;:::i;:::-;34995:6;34991:40;35133:6;35121:10;35118:22;35097:18;35085:10;35082:34;35079:62;35076:2;;;35144:18;;:::i;:::-;35076:2;35184:10;35180:2;35173:22;34963:238;;;:::o;35207:233::-;35246:3;35269:24;35287:5;35269:24;:::i;:::-;35260:33;;35315:66;35308:5;35305:77;35302:2;;;35385:18;;:::i;:::-;35302:2;35432:1;35425:5;35421:13;35414:20;;35250:190;;;:::o;35446:167::-;35483:3;35506:22;35522:5;35506:22;:::i;:::-;35497:31;;35550:4;35543:5;35540:15;35537:2;;;35558:18;;:::i;:::-;35537:2;35605:1;35598:5;35594:13;35587:20;;35487:126;;;:::o;35619:180::-;35667:77;35664:1;35657:88;35764:4;35761:1;35754:15;35788:4;35785:1;35778:15;35805:180;35853:77;35850:1;35843:88;35950:4;35947:1;35940:15;35974:4;35971:1;35964:15;35991:180;36039:77;36036:1;36029:88;36136:4;36133:1;36126:15;36160:4;36157:1;36150:15;36177:180;36225:77;36222:1;36215:88;36322:4;36319:1;36312:15;36346:4;36343:1;36336:15;36363:102;36404:6;36455:2;36451:7;36446:2;36439:5;36435:14;36431:28;36421:38;;36411:54;;;:::o;36471:102::-;36513:8;36560:5;36557:1;36553:13;36532:34;;36522:51;;;:::o;36579:164::-;36719:16;36715:1;36707:6;36703:14;36696:40;36685:58;:::o;36749:162::-;36889:14;36885:1;36877:6;36873:14;36866:38;36855:56;:::o;36917:225::-;37057:34;37053:1;37045:6;37041:14;37034:58;37126:8;37121:2;37113:6;37109:15;37102:33;37023:119;:::o;37148:225::-;37288:34;37284:1;37276:6;37272:14;37265:58;37357:8;37352:2;37344:6;37340:15;37333:33;37254:119;:::o;37379:178::-;37519:30;37515:1;37507:6;37503:14;37496:54;37485:72;:::o;37563:182::-;37703:34;37699:1;37691:6;37687:14;37680:58;37669:76;:::o;37751:176::-;37891:28;37887:1;37879:6;37875:14;37868:52;37857:70;:::o;37933:178::-;38073:30;38069:1;38061:6;38057:14;38050:54;38039:72;:::o;38117:164::-;38257:16;38253:1;38245:6;38241:14;38234:40;38223:58;:::o;38287:169::-;38427:21;38423:1;38415:6;38411:14;38404:45;38393:63;:::o;38462:179::-;38602:31;38598:1;38590:6;38586:14;38579:55;38568:73;:::o;38647:178::-;38787:30;38783:1;38775:6;38771:14;38764:54;38753:72;:::o;38831:229::-;38971:34;38967:1;38959:6;38955:14;38948:58;39040:12;39035:2;39027:6;39023:15;39016:37;38937:123;:::o;39066:122::-;39139:24;39157:5;39139:24;:::i;:::-;39132:5;39129:35;39119:2;;39178:1;39175;39168:12;39119:2;39109:79;:::o;39194:138::-;39275:32;39301:5;39275:32;:::i;:::-;39268:5;39265:43;39255:2;;39322:1;39319;39312:12;39255:2;39245:87;:::o;39338:116::-;39408:21;39423:5;39408:21;:::i;:::-;39401:5;39398:32;39388:2;;39444:1;39441;39434:12;39388:2;39378:76;:::o;39460:122::-;39533:24;39551:5;39533:24;:::i;:::-;39526:5;39523:35;39513:2;;39572:1;39569;39562:12;39513:2;39503:79;:::o;39588:118::-;39659:22;39675:5;39659:22;:::i;:::-;39652:5;39649:33;39639:2;;39696:1;39693;39686:12;39639:2;39629:77;:::o

Swarm Source

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