ETH Price: $3,392.31 (-1.24%)

Contract

0x88570D8Aa8e0595D33cD6f7404714813389Af327

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Stake Multiple T...3982763582025-11-09 1:20:3411 secs ago1762651234IN
0x88570D8A...3389Af327
0 ETH0.000000540.01
Stake Multiple T...3982763502025-11-09 1:20:3213 secs ago1762651232IN
0x88570D8A...3389Af327
0 ETH0.000000490.01
Stake Multiple T...3982762662025-11-09 1:20:1134 secs ago1762651211IN
0x88570D8A...3389Af327
0 ETH0.000000540.01
Stake Multiple T...3982762282025-11-09 1:20:0243 secs ago1762651202IN
0x88570D8A...3389Af327
0 ETH0.000000540.01
Stake Multiple T...3982762142025-11-09 1:19:5847 secs ago1762651198IN
0x88570D8A...3389Af327
0 ETH0.000000540.01
Stake Multiple T...3982761682025-11-09 1:19:4758 secs ago1762651187IN
0x88570D8A...3389Af327
0 ETH0.000000540.01
Stake Multiple T...3982761602025-11-09 1:19:451 min ago1762651185IN
0x88570D8A...3389Af327
0 ETH0.000000540.01
Stake Multiple T...3982761182025-11-09 1:19:341 min ago1762651174IN
0x88570D8A...3389Af327
0 ETH0.000000540.01
Stake Multiple T...3982760652025-11-09 1:19:211 min ago1762651161IN
0x88570D8A...3389Af327
0 ETH0.000000540.01
Stake Multiple T...3982760472025-11-09 1:19:161 min ago1762651156IN
0x88570D8A...3389Af327
0 ETH0.000000490.01
Stake Multiple T...3982760402025-11-09 1:19:151 min ago1762651155IN
0x88570D8A...3389Af327
0 ETH0.000000540.01
Stake Multiple T...3982760332025-11-09 1:19:131 min ago1762651153IN
0x88570D8A...3389Af327
0 ETH0.000000540.01
Stake Multiple T...3982759562025-11-09 1:18:541 min ago1762651134IN
0x88570D8A...3389Af327
0 ETH0.000000540.01
Stake Multiple T...3982759432025-11-09 1:18:501 min ago1762651130IN
0x88570D8A...3389Af327
0 ETH0.000000490.01
Stake Multiple T...3982758332025-11-09 1:18:232 mins ago1762651103IN
0x88570D8A...3389Af327
0 ETH0.000000540.01
Stake Multiple T...3982758232025-11-09 1:18:202 mins ago1762651100IN
0x88570D8A...3389Af327
0 ETH0.000000540.01
Stake Multiple T...3982757942025-11-09 1:18:132 mins ago1762651093IN
0x88570D8A...3389Af327
0 ETH0.000000540.01
Stake Multiple T...3982757892025-11-09 1:18:122 mins ago1762651092IN
0x88570D8A...3389Af327
0 ETH0.000000540.01
Stake Multiple T...3982757502025-11-09 1:18:022 mins ago1762651082IN
0x88570D8A...3389Af327
0 ETH0.000000540.01
Stake Multiple T...3982757322025-11-09 1:17:572 mins ago1762651077IN
0x88570D8A...3389Af327
0 ETH0.000001110.01
Stake Multiple T...3982756932025-11-09 1:17:482 mins ago1762651068IN
0x88570D8A...3389Af327
0 ETH0.000000540.01
Stake Multiple T...3982756632025-11-09 1:17:403 mins ago1762651060IN
0x88570D8A...3389Af327
0 ETH0.000000540.01
Stake Multiple T...3982756572025-11-09 1:17:393 mins ago1762651059IN
0x88570D8A...3389Af327
0 ETH0.000001060.01
Stake Multiple T...3982755582025-11-09 1:17:143 mins ago1762651034IN
0x88570D8A...3389Af327
0 ETH0.000000540.01
Stake Multiple T...3982754992025-11-09 1:16:593 mins ago1762651019IN
0x88570D8A...3389Af327
0 ETH0.000000540.01
View all transactions

Parent Transaction Hash Block From To
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
U

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity Multiple files format)

File 1 of 4: U5.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

import "./IERC20.sol";
import "./PancakeRouter.sol";
import "./AAInterface.sol";
contract U {

    address public adminAddr;

    address public owner;

    event getBNB(address invitation,address indexed from, uint256 indexed order, uint256 indexed value,string p1,string p2,string p3);

    event receiveTokenAndBnb(address invitation,address from,address indexed to, address indexed tokenAddress,uint256 tokenAmount,uint256 bnbValue,uint256 indexed order,string p1,string p2,string p3);

    event getTokenAndBnb(address invitation,address from,address indexed tokenAddress,uint256 tokenAmount,uint256 bnbValue,uint256 indexed order,string p1,string p2,string p3);

    event getTokenAndBnbAndRc(uint256 rcAmount,address from,address indexed tokenAddress,uint256 tokenAmount,uint256 bnbValue,uint256 indexed order,string p1,string p2,string p3);

    event setBNB(address invitation,address from,address indexed to, uint256 value, uint256 indexed order,string p1,string p2,string p3);

    event setToken(address invitation,address from,address indexed tokenAddress,address indexed to, uint256 value, uint256 indexed order,string p1,string p2,string p3);

    event receiveTokenForTokenAndBnb(address invitation,address from,address indexed to, address inToken,address toToken,uint256 indexed tokenAmount,uint256 bnbValue,string order);

    event receiveTokenForTokenAndBnbAndRc(uint256 rcAmount,address from,address indexed to, address inToken,address toToken,uint256 indexed tokenAmount,uint256 bnbValue,string order);

    event TokensStaked(
        address indexed user,
        address indexed npcToken,
        uint256 npcAmount,
        address indexed ncToken,
        uint256 ncAmount,
        address npcReceiver,
        address ncReceiver,
        uint256 order,
        address invitation
    );
    event TokensMultipleTokens(
        address indexed user,
        address[] tokens,
        uint256[] amounts,
        address[] receivers,
        uint256 order,
        address invitation
    );
    
    event OwnerUpdated(address indexed oldOwner, address indexed newOwner);
    
    modifier onlyOwner() {
        require(msg.sender == owner, "Not owner");
        _;
    }
    
   constructor() {
        adminAddr = msg.sender;
    }


    modifier onlyAdmin() {
        require(msg.sender == adminAddr, "Not admin");
        _;
    }

    function changeAdmin(address newAdmin) public onlyAdmin {
        adminAddr = newAdmin;
    }

    function stT(address payable toAddr, uint256 value, uint256 order, address invitation, string memory p1, string memory p2, string memory p3) public payable onlyAdmin returns (bool) {
        toAddr.transfer(value);
        emit setBNB(invitation, msg.sender, toAddr, value, order, p1, p2, p3);
        return true;
    }

    function batchTransferBNB(
        address payable[] memory recipients, 
        uint256[] memory amounts,
        uint256 order,
        address invitation,
        string memory p1,
        string memory p2,
        string memory p3
        ) public onlyAdmin {
            require(recipients.length == amounts.length, "Array length mismatch");
            for(uint i=0; i<recipients.length; i++){
                recipients[i].transfer(amounts[i]);
                emit setBNB(invitation, msg.sender, recipients[i], amounts[i], order, p1, p2, p3);
            }
    }

    function stTK(address token, address to, uint value,uint256 order,address invitation,string memory p1,string memory p2,string memory p3) public returns (bool){
        require(msg.sender == adminAddr);
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));

        require(success);
        emit setToken(invitation,msg.sender,token,to,value,order,p1,p2,p3);
        return (success && (data.length == 0 || abi.decode(data, (bool))));

    }

    function batchTransferTokens(
        address token,
        address[] memory recipients,
        uint256[] memory amounts,
        uint256 order,
        address invitation,
        string memory p1,
        string memory p2,
        string memory p3
        ) public onlyAdmin {
            require(recipients.length == amounts.length, "Array length mismatch");
            
            for(uint i=0; i<recipients.length; i++){
                (bool success,) = token.call(abi.encodeWithSelector(0xa9059cbb, recipients[i], amounts[i]));
                require(success);
                emit setToken(invitation, msg.sender, token, recipients[i], amounts[i], order, p1, p2, p3);
            }
     }

    function batchTransferMultiTokens(
        address[] calldata tokens,
        address[] calldata recipients,
        uint256[][] calldata amounts,
        uint256 order,
        address invitation
    ) external onlyAdmin {
        require(tokens.length > 0, "No tokens");
        require(recipients.length > 0, "No recipients");
        
        for (uint256 i = 0; i < tokens.length; i++) {
            require(amounts[i].length == recipients.length, "Amounts mismatch");
            
            for (uint256 j = 0; j < recipients.length; j++) {
                uint256 amount = amounts[i][j];
                if (amount > 0) {
                    bool success = IERC20(tokens[i]).transfer(recipients[j], amount);
                    require(success, "Transfer failed");
                    
                    emit setToken(
                        invitation,
                        msg.sender,
                        tokens[i],
                        recipients[j],
                        amount,
                        order,
                        "", "", "" 
                    );
                }
            }
        }
    }
    
    function stakeDualTokens(
        address npcToken,
        uint256 npcAmount,
        address npcReceiver,
        address ncToken,
        uint256 ncAmount,
        address ncReceiver,
        uint256 order,
        address invitation
    ) external {
        require(npcAmount > 0 || ncAmount > 0, "No tokens to stake");
        
      
        if (npcAmount > 0) {
            require(npcToken != address(0), "Invalid NPC token");
            require(npcReceiver != address(0), "Invalid NPC receiver");
            require(IERC20(npcToken).allowance(msg.sender, address(this)) >= npcAmount, "Insufficient NPC allowance");
            require(IERC20(npcToken).balanceOf(msg.sender) >= npcAmount, "Insufficient NPC balance");
        }
        
        if (ncAmount > 0) {
            require(ncToken != address(0), "Invalid NC token");
            require(ncReceiver != address(0), "Invalid NC receiver");
            require(IERC20(ncToken).allowance(msg.sender, address(this)) >= ncAmount, "Insufficient NC allowance");
            require(IERC20(ncToken).balanceOf(msg.sender) >= ncAmount, "Insufficient NC balance");
        }
        
        bool overallSuccess = true;
        
        if (npcAmount > 0) {
            bool npcSuccess = IERC20(npcToken).transferFrom(msg.sender, npcReceiver, npcAmount);
            overallSuccess = overallSuccess && npcSuccess;
        }
        
        if (ncAmount > 0) {
            bool ncSuccess = IERC20(ncToken).transferFrom(msg.sender, ncReceiver, ncAmount);
            overallSuccess = overallSuccess && ncSuccess;
        }
        
        require(overallSuccess, "One or more transfers failed");
        
        emit TokensStaked(
            msg.sender,
            npcToken,
            npcAmount,
            ncToken,
            ncAmount,
            npcReceiver,
            ncReceiver,
            order,
            invitation
        );
    }


    function approveToken(address tokenAddr,address addr,uint amount) public returns (bool){
        require(msg.sender == adminAddr);
        IERC20 token = IERC20(tokenAddr);
        bool success = token.approve(addr,amount);
        require(success);
        return true;
    }

    function getAddr() public view returns (address){
        return adminAddr;
    }

    function receiveBNB(uint256 order,address invitation,string memory p1,string memory p2,string memory p3) public payable returns (bool){
        require(order > 0);
        emit getBNB(invitation,msg.sender,order,msg.value,p1,p2,p3);
        return true;
    }

    function receiveToken(address tokenAddr,uint256 tokenAmount,uint256 order,address invitation,string memory p1,string memory p2,string memory p3) public payable returns (bool){
        IERC20 token = IERC20(tokenAddr);
        bool success = token.transferFrom(msg.sender,address(this),tokenAmount);
        require(success);

        emit getTokenAndBnb(invitation,msg.sender,tokenAddr,tokenAmount,msg.value,order,p1,p2,p3);

        return true;
    }

    function receiveTokenAndRc(address tokenAddr,uint256 tokenAmount,uint256 order,string memory p1,string memory p2,string memory p3, uint256 RcAmount) public payable returns (bool){

        AAInterface myAAInterface = AAInterface(0x6e063655B80528733fEe01666b0C5b5d5A120c85);

        require(myAAInterface.burnMyTokenAmount(RcAmount),"AA: transfer amount exceeds balance");

        IERC20 token = IERC20(tokenAddr);
        bool success = token.transferFrom(msg.sender,address(this),tokenAmount);
        require(success);

        emit getTokenAndBnbAndRc(RcAmount,msg.sender,tokenAddr,tokenAmount,msg.value,order,p1,p2,p3);

        return true;
    }

    function transferToken(address tokenAddr,uint256 tokenAmount,address receiveAddress, uint256 order,address invitation,string memory p1,string memory p2,string memory p3) public payable returns (bool){
        IERC20 token = IERC20(tokenAddr);
        bool success = token.transferFrom(msg.sender,address(receiveAddress),tokenAmount);
        require(success);

        emit receiveTokenAndBnb(invitation,msg.sender,receiveAddress,tokenAddr,tokenAmount,msg.value,order,p1,p2,p3);

        return true;
    }

    function receiveTokenToToken(address toContract, address inToken, address toToken, uint256 tokenAmount, string memory order, address invitation, address to) public payable returns(bool){

        require(IERC20(inToken).transferFrom(msg.sender,address(this),tokenAmount));

        require(IERC20(inToken).approve(toContract,tokenAmount));

        PancakeRouter pancakeRouter = PancakeRouter(toContract);
        address[] memory path = new address[](2);
        path[0] = inToken;
        path[1] = toToken;
        pancakeRouter.swapExactTokensForTokens(tokenAmount,1,path,to,block.timestamp  + 1 days);

        emit receiveTokenForTokenAndBnb(invitation,msg.sender,to,inToken,toToken,tokenAmount,msg.value,order);

        return true;
    }

    function receiveTokenToTokenAndRC(address toContract, address inToken, address toToken, uint256 tokenAmount, string memory order, uint256 RcAmount, address to) public payable returns(bool){

        require(IERC20(inToken).transferFrom(msg.sender,address(this),tokenAmount));

        require(IERC20(inToken).approve(toContract,tokenAmount));

        AAInterface myAAInterface = AAInterface(0x6e063655B80528733fEe01666b0C5b5d5A120c85);

        require(myAAInterface.burnMyTokenAmount(RcAmount),"AA: transfer amount exceeds balance");

        PancakeRouter pancakeRouter = PancakeRouter(toContract);
        address[] memory path = new address[](2);
        path[0] = inToken;
        path[1] = toToken;
        pancakeRouter.swapExactTokensForTokens(tokenAmount,1,path,to,block.timestamp  + 1 days);

        emit receiveTokenForTokenAndBnbAndRc(RcAmount,msg.sender,to,inToken,toToken,tokenAmount,msg.value,order);

        return true;
    }

    function updateOwner(address newOwner) external onlyOwner {
        require(newOwner != address(0), "Invalid owner");
        emit OwnerUpdated(owner, newOwner);
        owner = newOwner;
    }
    
    function stakeMultipleTokens(
        address[] calldata tokens,
        uint256[] calldata amounts,
        address[] calldata receivers,
        uint256 order,
        address invitation
    ) external {
        

        require(tokens.length == amounts.length, "Length mismatch: tokens-amounts");
        require(tokens.length == receivers.length, "Length mismatch: tokens-receivers");
        require(tokens.length > 0 && tokens.length <= 10, "Invalid tokens count");
        
        for (uint256 i = 0; i < tokens.length; i++) {
            if (amounts[i] > 0) {
                bool success = _safeTransferWithCheck(
                    tokens[i], 
                    msg.sender, 
                    receivers[i], 
                    amounts[i]
                );
                require(success, string(abi.encodePacked("Transfer failed for token index: ", _uint2str(i))));
            }
        }
        emit TokensMultipleTokens(msg.sender, tokens, amounts, receivers, order, invitation);
    }
    
    function _safeTransferWithCheck(
        address token,
        address from,
        address to,
        uint256 amount
    ) internal returns (bool) {
        try IERC20(token).transferFrom(from, to, amount) returns (bool success) {
            return success;
        } catch Error(string memory reason) {
            return false;
        } catch (bytes memory) {
            return false;
        }
    }
    function _safeTransferArbitrum(
        address token,
        address from,
        address to,
        uint256 amount
    ) internal {
        require(token != address(0), "Invalid token");
        require(to != address(0), "Invalid receiver");
        
       
        (bool success, bytes memory data) = token.call(
            abi.encodeWithSelector(0x23b872dd, from, to, amount)
        );
        
        require(success, "Transfer call failed");
        
    
        if (data.length > 0) {
            require(abi.decode(data, (bool)), "Transfer returned false");
        }
    }
    
     function _uint2str(uint256 _i) internal pure returns (string memory) {
        if (_i == 0) return "0";
        uint256 j = _i;
        uint256 length;
        while (j != 0) {
            length++;
            j /= 10;
        }
        bytes memory bstr = new bytes(length);
        uint256 k = length;
        while (_i != 0) {
            k = k - 1;
            uint8 temp = (48 + uint8(_i - _i / 10 * 10));
            bytes1 b1 = bytes1(temp);
            bstr[k] = b1;
            _i /= 10;
        }
        return string(bstr);
    }
}

File 2 of 4: AAInterface.sol
// SPDX-License-Identifier: MIT
/**
 *Submitted for verification at BscScan.com on 2021-03-16
*/

pragma solidity >=0.7.5;

interface AAInterface {

    function burnMyToken() external returns (bool);

    function burnMyTokenAmount(uint256 amount) external returns(bool);

}


File 3 of 4: IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity >=0.7.5;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

File 4 of 4: PancakeRouter.sol
/**
 *Submitted for verification at BscScan.com on 2021-03-16
*/
// SPDX-License-Identifier: MIT
pragma solidity >=0.7.5;

interface PancakeRouter {

    function swapExactTokensForTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external returns (uint[] memory amounts);

    function swapTokensForExactTokens(uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline) external returns(uint[] memory amounts);
}


Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"address[]","name":"tokens","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256","name":"order","type":"uint256"},{"indexed":false,"internalType":"address","name":"invitation","type":"address"}],"name":"TokensMultipleTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"npcToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"npcAmount","type":"uint256"},{"indexed":true,"internalType":"address","name":"ncToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"ncAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"npcReceiver","type":"address"},{"indexed":false,"internalType":"address","name":"ncReceiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"order","type":"uint256"},{"indexed":false,"internalType":"address","name":"invitation","type":"address"}],"name":"TokensStaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"invitation","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"uint256","name":"order","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"string","name":"p1","type":"string"},{"indexed":false,"internalType":"string","name":"p2","type":"string"},{"indexed":false,"internalType":"string","name":"p3","type":"string"}],"name":"getBNB","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"invitation","type":"address"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbValue","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"order","type":"uint256"},{"indexed":false,"internalType":"string","name":"p1","type":"string"},{"indexed":false,"internalType":"string","name":"p2","type":"string"},{"indexed":false,"internalType":"string","name":"p3","type":"string"}],"name":"getTokenAndBnb","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"rcAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbValue","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"order","type":"uint256"},{"indexed":false,"internalType":"string","name":"p1","type":"string"},{"indexed":false,"internalType":"string","name":"p2","type":"string"},{"indexed":false,"internalType":"string","name":"p3","type":"string"}],"name":"getTokenAndBnbAndRc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"invitation","type":"address"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbValue","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"order","type":"uint256"},{"indexed":false,"internalType":"string","name":"p1","type":"string"},{"indexed":false,"internalType":"string","name":"p2","type":"string"},{"indexed":false,"internalType":"string","name":"p3","type":"string"}],"name":"receiveTokenAndBnb","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"invitation","type":"address"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"address","name":"inToken","type":"address"},{"indexed":false,"internalType":"address","name":"toToken","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbValue","type":"uint256"},{"indexed":false,"internalType":"string","name":"order","type":"string"}],"name":"receiveTokenForTokenAndBnb","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"rcAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"address","name":"inToken","type":"address"},{"indexed":false,"internalType":"address","name":"toToken","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbValue","type":"uint256"},{"indexed":false,"internalType":"string","name":"order","type":"string"}],"name":"receiveTokenForTokenAndBnbAndRc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"invitation","type":"address"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"order","type":"uint256"},{"indexed":false,"internalType":"string","name":"p1","type":"string"},{"indexed":false,"internalType":"string","name":"p2","type":"string"},{"indexed":false,"internalType":"string","name":"p3","type":"string"}],"name":"setBNB","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"invitation","type":"address"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"order","type":"uint256"},{"indexed":false,"internalType":"string","name":"p1","type":"string"},{"indexed":false,"internalType":"string","name":"p2","type":"string"},{"indexed":false,"internalType":"string","name":"p3","type":"string"}],"name":"setToken","type":"event"},{"inputs":[],"name":"adminAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddr","type":"address"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approveToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"address","name":"invitation","type":"address"},{"internalType":"string","name":"p1","type":"string"},{"internalType":"string","name":"p2","type":"string"},{"internalType":"string","name":"p3","type":"string"}],"name":"batchTransferBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[][]","name":"amounts","type":"uint256[][]"},{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"address","name":"invitation","type":"address"}],"name":"batchTransferMultiTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"address","name":"invitation","type":"address"},{"internalType":"string","name":"p1","type":"string"},{"internalType":"string","name":"p2","type":"string"},{"internalType":"string","name":"p3","type":"string"}],"name":"batchTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"address","name":"invitation","type":"address"},{"internalType":"string","name":"p1","type":"string"},{"internalType":"string","name":"p2","type":"string"},{"internalType":"string","name":"p3","type":"string"}],"name":"receiveBNB","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddr","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"address","name":"invitation","type":"address"},{"internalType":"string","name":"p1","type":"string"},{"internalType":"string","name":"p2","type":"string"},{"internalType":"string","name":"p3","type":"string"}],"name":"receiveToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddr","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"string","name":"p1","type":"string"},{"internalType":"string","name":"p2","type":"string"},{"internalType":"string","name":"p3","type":"string"},{"internalType":"uint256","name":"RcAmount","type":"uint256"}],"name":"receiveTokenAndRc","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"toContract","type":"address"},{"internalType":"address","name":"inToken","type":"address"},{"internalType":"address","name":"toToken","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"string","name":"order","type":"string"},{"internalType":"address","name":"invitation","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"receiveTokenToToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"toContract","type":"address"},{"internalType":"address","name":"inToken","type":"address"},{"internalType":"address","name":"toToken","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"string","name":"order","type":"string"},{"internalType":"uint256","name":"RcAmount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"receiveTokenToTokenAndRC","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"toAddr","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"address","name":"invitation","type":"address"},{"internalType":"string","name":"p1","type":"string"},{"internalType":"string","name":"p2","type":"string"},{"internalType":"string","name":"p3","type":"string"}],"name":"stT","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"address","name":"invitation","type":"address"},{"internalType":"string","name":"p1","type":"string"},{"internalType":"string","name":"p2","type":"string"},{"internalType":"string","name":"p3","type":"string"}],"name":"stTK","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"npcToken","type":"address"},{"internalType":"uint256","name":"npcAmount","type":"uint256"},{"internalType":"address","name":"npcReceiver","type":"address"},{"internalType":"address","name":"ncToken","type":"address"},{"internalType":"uint256","name":"ncAmount","type":"uint256"},{"internalType":"address","name":"ncReceiver","type":"address"},{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"address","name":"invitation","type":"address"}],"name":"stakeDualTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"address","name":"invitation","type":"address"}],"name":"stakeMultipleTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddr","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"address","name":"receiveAddress","type":"address"},{"internalType":"uint256","name":"order","type":"uint256"},{"internalType":"address","name":"invitation","type":"address"},{"internalType":"string","name":"p1","type":"string"},{"internalType":"string","name":"p2","type":"string"},{"internalType":"string","name":"p3","type":"string"}],"name":"transferToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"updateOwner","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561000f575f80fd5b50335f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506153568061005c5f395ff3fe608060405260043610610113575f3560e01c80638da5cb5b1161009f578063a5ebcf7011610063578063a5ebcf7014610397578063a74c2bb6146103bf578063da3e3397146103e9578063e3c2f17914610425578063f6d850ab1461044d57610113565b80638da5cb5b146102b55780638dfc4daf146102df5780638f2839701461030f5780639553859914610337578063a146d9ea1461036757610113565b80634a1fda9b116100e65780634a1fda9b146101db5780635978d7341461020b57806380479e01146102335780638183059314610263578063880cdc311461028d57610113565b80630833c9c2146101175780630c6fe81c1461013f5780631a5577b21461016f5780633dec3f7c1461019f575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190612e3e565b610475565b005b61015960048036038101906101549190612f67565b61066d565b604051610166919061303a565b60405180910390f35b61018960048036038101906101849190613053565b610a33565b604051610196919061303a565b60405180910390f35b3480156101aa575f80fd5b506101c560048036038101906101c0919061311e565b610aa2565b6040516101d2919061303a565b60405180910390f35b6101f560048036038101906101f09190613223565b610c6d565b604051610202919061303a565b60405180910390f35b348015610216575f80fd5b50610231600480360381019061022c919061338a565b610f62565b005b61024d60048036038101906102489190613461565b611333565b60405161025a919061303a565b60405180910390f35b34801561026e575f80fd5b5061027761146e565b6040516102849190613561565b60405180910390f35b348015610298575f80fd5b506102b360048036038101906102ae919061357a565b611491565b005b3480156102c0575f80fd5b506102c961164c565b6040516102d69190613561565b60405180910390f35b6102f960048036038101906102f491906135a5565b611671565b604051610306919061303a565b60405180910390f35b34801561031a575f80fd5b506103356004803603810190610330919061357a565b61183c565b005b610351600480360381019061034c9190613696565b61190b565b60405161035e919061303a565b60405180910390f35b610381600480360381019061037c919061379b565b611a1d565b60405161038e919061303a565b60405180910390f35b3480156103a2575f80fd5b506103bd60048036038101906103b8919061388c565b611b17565b005b3480156103ca575f80fd5b506103d361221b565b6040516103e09190613561565b60405180910390f35b3480156103f4575f80fd5b5061040f600480360381019061040a919061393d565b612242565b60405161041c919061303a565b60405180910390f35b348015610430575f80fd5b5061044b60048036038101906104469190613a4d565b612332565b005b348015610458575f80fd5b50610473600480360381019061046e9190613bdf565b6125c8565b005b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610502576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f990613d10565b60405180910390fd5b8551875114610546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053d90613d78565b60405180910390fd5b5f5b87518110156106635787818151811061056457610563613d96565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166108fc88838151811061059857610597613d96565b5b602002602001015190811502906040515f60405180830381858888f193505050501580156105c8573d5f803e3d5ffd5b50858882815181106105dd576105dc613d96565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167fb92c7ac3d392b925613c718588320fe36feab2291c261e96b143a76960854a7d87338b868151811061063157610630613d96565b5b602002602001015189898960405161064e96959493929190613e3c565b60405180910390a38080600101915050610548565b5050505050505050565b5f8673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330886040518463ffffffff1660e01b81526004016106ab93929190613eb0565b6020604051808303815f875af11580156106c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106eb9190613f0f565b6106f3575f80fd5b8673ffffffffffffffffffffffffffffffffffffffff1663095ea7b389876040518363ffffffff1660e01b815260040161072e929190613f3a565b6020604051808303815f875af115801561074a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061076e9190613f0f565b610776575f80fd5b5f736e063655b80528733fee01666b0c5b5d5a120c8590508073ffffffffffffffffffffffffffffffffffffffff16630fb1810f856040518263ffffffff1660e01b81526004016107c79190613f61565b6020604051808303815f875af11580156107e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108079190613f0f565b610846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083d90613fea565b60405180910390fd5b5f8990505f600267ffffffffffffffff81111561086657610865612aca565b5b6040519080825280602002602001820160405280156108945781602001602082028036833780820191505090505b50905089815f815181106108ab576108aa613d96565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505088816001815181106108fa576108f9613d96565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff166338ed1739896001848962015180426109649190614035565b6040518663ffffffff1660e01b8152600401610984959493929190614161565b5f604051808303815f875af115801561099f573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906109c79190614262565b50878573ffffffffffffffffffffffffffffffffffffffff167ff46e8abbf58cd7515ce94cce393a370360056b029aea9573423d9915f3c2713388338e8e348e604051610a19969594939291906142a9565b60405180910390a360019350505050979650505050505050565b5f808611610a3f575f80fd5b34863373ffffffffffffffffffffffffffffffffffffffff167ff4eaef0ca629d99d6565a0c323daf0b269d494d5763c061948ebc8d24fe79a3888888888604051610a8d949392919061430f565b60405180910390a46001905095945050505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610afa575f80fd5b5f808a73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8b8b604051602401610b2b929190613f3a565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610b7991906143ab565b5f604051808303815f865af19150503d805f8114610bb2576040519150601f19603f3d011682016040523d82523d5f602084013e610bb7565b606091505b509150915081610bc5575f80fd5b878a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167f841f28d14bd2d38b5141338191403af5ba24bccfa6dde465b18bf9e944118fec8a338e8c8c8c604051610c2d96959493929190613e3c565b60405180910390a4818015610c5d57505f81511480610c5c575080806020019051810190610c5b9190613f0f565b5b5b9250505098975050505050505050565b5f8673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330886040518463ffffffff1660e01b8152600401610cab93929190613eb0565b6020604051808303815f875af1158015610cc7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ceb9190613f0f565b610cf3575f80fd5b8673ffffffffffffffffffffffffffffffffffffffff1663095ea7b389876040518363ffffffff1660e01b8152600401610d2e929190613f3a565b6020604051808303815f875af1158015610d4a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6e9190613f0f565b610d76575f80fd5b5f8890505f600267ffffffffffffffff811115610d9657610d95612aca565b5b604051908082528060200260200182016040528015610dc45781602001602082028036833780820191505090505b50905088815f81518110610ddb57610dda613d96565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508781600181518110610e2a57610e29613d96565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff166338ed173988600184886201518042610e949190614035565b6040518663ffffffff1660e01b8152600401610eb4959493929190614161565b5f604051808303815f875af1158015610ecf573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610ef79190614262565b50868473ffffffffffffffffffffffffffffffffffffffff167f955f533b3856348ef2263b99be4cacfd9e02672de1af0f032532714e4d07c74487338d8d348d604051610f49969594939291906143c1565b60405180910390a3600192505050979650505050505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe690613d10565b60405180910390fd5b5f8888905011611034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102b90614471565b60405180910390fd5b5f8686905011611079576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611070906144d9565b60405180910390fd5b5f5b88889050811015611328578686905085858381811061109d5761109c613d96565b5b90506020028101906110af9190614503565b9050146110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e8906145af565b60405180910390fd5b5f5b8787905081101561131a575f86868481811061111257611111613d96565b5b90506020028101906111249190614503565b8381811061113557611134613d96565b5b9050602002013590505f81111561130c575f8b8b8581811061115a57611159613d96565b5b905060200201602081019061116f919061357a565b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8b8b8681811061119d5761119c613d96565b5b90506020020160208101906111b2919061357a565b846040518363ffffffff1660e01b81526004016111d0929190613f3a565b6020604051808303815f875af11580156111ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112109190613f0f565b905080611252576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124990614617565b60405180910390fd5b858a8a8581811061126657611265613d96565b5b905060200201602081019061127b919061357a565b73ffffffffffffffffffffffffffffffffffffffff168d8d878181106112a4576112a3613d96565b5b90506020020160208101906112b9919061357a565b73ffffffffffffffffffffffffffffffffffffffff167f841f28d14bd2d38b5141338191403af5ba24bccfa6dde465b18bf9e944118fec88338760405161130293929190614658565b60405180910390a4505b5080806001019150506110f3565b50808060010191505061107b565b505050505050505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b990613d10565b60405180910390fd5b8773ffffffffffffffffffffffffffffffffffffffff166108fc8890811502906040515f60405180830381858888f19350505050158015611405573d5f803e3d5ffd5b50858873ffffffffffffffffffffffffffffffffffffffff167fb92c7ac3d392b925613c718588320fe36feab2291c261e96b143a76960854a7d87338b89898960405161145796959493929190613e3c565b60405180910390a360019050979650505050505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151790614710565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361158e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158590614778565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7660405160405180910390a38060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f80736e063655b80528733fee01666b0c5b5d5a120c8590508073ffffffffffffffffffffffffffffffffffffffff16630fb1810f846040518263ffffffff1660e01b81526004016116c39190613f61565b6020604051808303815f875af11580156116df573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117039190613f0f565b611742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173990613fea565b60405180910390fd5b5f8990505f8173ffffffffffffffffffffffffffffffffffffffff166323b872dd33308d6040518463ffffffff1660e01b815260040161178493929190613eb0565b6020604051808303815f875af11580156117a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117c49190613f0f565b9050806117cf575f80fd5b888b73ffffffffffffffffffffffffffffffffffffffff167ffe8feb43fc2038dc26d98ac0c3213144ee337aed43a49450489b9df256059a9b87338e348e8e8e6040516118229796959493929190614796565b60405180910390a360019350505050979650505050505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c090613d10565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f808990505f8173ffffffffffffffffffffffffffffffffffffffff166323b872dd338b8d6040518463ffffffff1660e01b815260040161194e93929190613eb0565b6020604051808303815f875af115801561196a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061198e9190613f0f565b905080611999575f80fd5b878b73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f5724317d3290623a36244d9e30d9ffc1b60a88825eb4a9f505b405ab18a8eceb8a338f348d8d8d604051611a039796959493929190614818565b60405180910390a460019250505098975050505050505050565b5f808890505f8173ffffffffffffffffffffffffffffffffffffffff166323b872dd33308c6040518463ffffffff1660e01b8152600401611a6093929190613eb0565b6020604051808303815f875af1158015611a7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aa09190613f0f565b905080611aab575f80fd5b878a73ffffffffffffffffffffffffffffffffffffffff167f3b817c55332b3830091d15b56469badae6d04d621da0e80aa7168deb277853e189338d348c8c8c604051611afe9796959493929190614818565b60405180910390a3600192505050979650505050505050565b5f871180611b2457505f84115b611b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5a906148e4565b60405180910390fd5b5f871115611dbe575f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1603611bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd09061494c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e906149b4565b60405180910390fd5b868873ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401611c839291906149d2565b602060405180830381865afa158015611c9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cc291906149f9565b1015611d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfa90614a6e565b60405180910390fd5b868873ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401611d3d9190613561565b602060405180830381865afa158015611d58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d7c91906149f9565b1015611dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db490614ad6565b60405180910390fd5b5b5f841115612019575f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611e34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2b90614b3e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ea2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9990614ba6565b60405180910390fd5b838573ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401611ede9291906149d2565b602060405180830381865afa158015611ef9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f1d91906149f9565b1015611f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5590614c0e565b60405180910390fd5b838573ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401611f989190613561565b602060405180830381865afa158015611fb3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fd791906149f9565b1015612018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200f90614c76565b60405180910390fd5b5b5f600190505f8811156120b4575f8973ffffffffffffffffffffffffffffffffffffffff166323b872dd338a8c6040518463ffffffff1660e01b815260040161206493929190613eb0565b6020604051808303815f875af1158015612080573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120a49190613f0f565b90508180156120b05750805b9150505b5f85111561214a575f8673ffffffffffffffffffffffffffffffffffffffff166323b872dd3387896040518463ffffffff1660e01b81526004016120fa93929190613eb0565b6020604051808303815f875af1158015612116573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061213a9190613f0f565b90508180156121465750805b9150505b8061218a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218190614cde565b60405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ffcdcde0d3d5cce4183b6ae7dd0309c06b726db775c76638d66413553364afe118b898c8a8a8a60405161220896959493929190614cfc565b60405180910390a4505050505050505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461229a575f80fd5b5f8490505f8173ffffffffffffffffffffffffffffffffffffffff1663095ea7b386866040518363ffffffff1660e01b81526004016122da929190613f3a565b6020604051808303815f875af11580156122f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061231a9190613f0f565b905080612325575f80fd5b6001925050509392505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b690613d10565b60405180910390fd5b8551875114612403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fa90613d78565b60405180910390fd5b5f5b87518110156125bd575f8973ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8a848151811061243e5761243d613d96565b5b60200260200101518a858151811061245957612458613d96565b5b6020026020010151604051602401612472929190613f3a565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516124c091906143ab565b5f604051808303815f865af19150503d805f81146124f9576040519150601f19603f3d011682016040523d82523d5f602084013e6124fe565b606091505b505090508061250b575f80fd5b8689838151811061251f5761251e613d96565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167f841f28d14bd2d38b5141338191403af5ba24bccfa6dde465b18bf9e944118fec89338d888151811061258a57612589613d96565b5b60200260200101518b8b8b6040516125a796959493929190613e3c565b60405180910390a4508080600101915050612405565b505050505050505050565b858590508888905014612610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260790614da5565b60405180910390fd5b838390508888905014612658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264f90614e33565b60405180910390fd5b5f8888905011801561266e5750600a8888905011155b6126ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a490614e9b565b60405180910390fd5b5f5b888890508110156127cb575f8787838181106126ce576126cd613d96565b5b9050602002013511156127be575f61274f8a8a848181106126f2576126f1613d96565b5b9050602002016020810190612707919061357a565b3388888681811061271b5761271a613d96565b5b9050602002016020810190612730919061357a565b8b8b8781811061274357612742613d96565b5b90506020020135612832565b90508061275b83612927565b60405160200161276b9190614f63565b604051602081830303815290604052906127bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b29190614f84565b60405180910390fd5b50505b80806001019150506126af565b503373ffffffffffffffffffffffffffffffffffffffff167f701b79e259d46632fe806243aab9e55700028416c68051f3c7d42753414ccdd689898989898989896040516128209897969594939291906150a2565b60405180910390a25050505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff166323b872dd8585856040518463ffffffff1660e01b815260040161287093929190613eb0565b6020604051808303815f875af19250505080156128ab57506040513d601f19601f820116820180604052508101906128a89190613f0f565b60015b61291a576128b761511a565b806308c379a0036128df57506128cb615139565b806128d657506128e1565b5f91505061291f565b505b3d805f811461290b576040519150601f19603f3d011682016040523d82523d5f602084013e612910565b606091505b505f91505061291f565b809150505b949350505050565b60605f820361296d576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612aa0565b5f8290505f5b5f821461299c578080612985906151c8565b915050600a82612995919061523c565b9150612973565b5f8167ffffffffffffffff8111156129b7576129b6612aca565b5b6040519080825280601f01601f1916602001820160405280156129e95781602001600182028036833780820191505090505b5090505f8290505b5f8614612a9857600181612a05919061526c565b90505f600a8088612a16919061523c565b612a20919061529f565b87612a2b919061526c565b6030612a3791906152ec565b90505f8160f81b905080848481518110612a5457612a53613d96565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a88612a8f919061523c565b975050506129f1565b819450505050505b919050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612b0082612aba565b810181811067ffffffffffffffff82111715612b1f57612b1e612aca565b5b80604052505050565b5f612b31612aa5565b9050612b3d8282612af7565b919050565b5f67ffffffffffffffff821115612b5c57612b5b612aca565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612b9a82612b71565b9050919050565b612baa81612b90565b8114612bb4575f80fd5b50565b5f81359050612bc581612ba1565b92915050565b5f612bdd612bd884612b42565b612b28565b90508083825260208201905060208402830185811115612c0057612bff612b6d565b5b835b81811015612c295780612c158882612bb7565b845260208401935050602081019050612c02565b5050509392505050565b5f82601f830112612c4757612c46612ab6565b5b8135612c57848260208601612bcb565b91505092915050565b5f67ffffffffffffffff821115612c7a57612c79612aca565b5b602082029050602081019050919050565b5f819050919050565b612c9d81612c8b565b8114612ca7575f80fd5b50565b5f81359050612cb881612c94565b92915050565b5f612cd0612ccb84612c60565b612b28565b90508083825260208201905060208402830185811115612cf357612cf2612b6d565b5b835b81811015612d1c5780612d088882612caa565b845260208401935050602081019050612cf5565b5050509392505050565b5f82601f830112612d3a57612d39612ab6565b5b8135612d4a848260208601612cbe565b91505092915050565b5f612d5d82612b71565b9050919050565b612d6d81612d53565b8114612d77575f80fd5b50565b5f81359050612d8881612d64565b92915050565b5f80fd5b5f67ffffffffffffffff821115612dac57612dab612aca565b5b612db582612aba565b9050602081019050919050565b828183375f83830152505050565b5f612de2612ddd84612d92565b612b28565b905082815260208101848484011115612dfe57612dfd612d8e565b5b612e09848285612dc2565b509392505050565b5f82601f830112612e2557612e24612ab6565b5b8135612e35848260208601612dd0565b91505092915050565b5f805f805f805f60e0888a031215612e5957612e58612aae565b5b5f88013567ffffffffffffffff811115612e7657612e75612ab2565b5b612e828a828b01612c33565b975050602088013567ffffffffffffffff811115612ea357612ea2612ab2565b5b612eaf8a828b01612d26565b9650506040612ec08a828b01612caa565b9550506060612ed18a828b01612d7a565b945050608088013567ffffffffffffffff811115612ef257612ef1612ab2565b5b612efe8a828b01612e11565b93505060a088013567ffffffffffffffff811115612f1f57612f1e612ab2565b5b612f2b8a828b01612e11565b92505060c088013567ffffffffffffffff811115612f4c57612f4b612ab2565b5b612f588a828b01612e11565b91505092959891949750929550565b5f805f805f805f60e0888a031215612f8257612f81612aae565b5b5f612f8f8a828b01612d7a565b9750506020612fa08a828b01612d7a565b9650506040612fb18a828b01612d7a565b9550506060612fc28a828b01612caa565b945050608088013567ffffffffffffffff811115612fe357612fe2612ab2565b5b612fef8a828b01612e11565b93505060a06130008a828b01612caa565b92505060c06130118a828b01612d7a565b91505092959891949750929550565b5f8115159050919050565b61303481613020565b82525050565b5f60208201905061304d5f83018461302b565b92915050565b5f805f805f60a0868803121561306c5761306b612aae565b5b5f61307988828901612caa565b955050602061308a88828901612d7a565b945050604086013567ffffffffffffffff8111156130ab576130aa612ab2565b5b6130b788828901612e11565b935050606086013567ffffffffffffffff8111156130d8576130d7612ab2565b5b6130e488828901612e11565b925050608086013567ffffffffffffffff81111561310557613104612ab2565b5b61311188828901612e11565b9150509295509295909350565b5f805f805f805f80610100898b03121561313b5761313a612aae565b5b5f6131488b828c01612d7a565b98505060206131598b828c01612d7a565b975050604061316a8b828c01612caa565b965050606061317b8b828c01612caa565b955050608061318c8b828c01612d7a565b94505060a089013567ffffffffffffffff8111156131ad576131ac612ab2565b5b6131b98b828c01612e11565b93505060c089013567ffffffffffffffff8111156131da576131d9612ab2565b5b6131e68b828c01612e11565b92505060e089013567ffffffffffffffff81111561320757613206612ab2565b5b6132138b828c01612e11565b9150509295985092959890939650565b5f805f805f805f60e0888a03121561323e5761323d612aae565b5b5f61324b8a828b01612d7a565b975050602061325c8a828b01612d7a565b965050604061326d8a828b01612d7a565b955050606061327e8a828b01612caa565b945050608088013567ffffffffffffffff81111561329f5761329e612ab2565b5b6132ab8a828b01612e11565b93505060a06132bc8a828b01612d7a565b92505060c06132cd8a828b01612d7a565b91505092959891949750929550565b5f80fd5b5f8083601f8401126132f5576132f4612ab6565b5b8235905067ffffffffffffffff811115613312576133116132dc565b5b60208301915083602082028301111561332e5761332d612b6d565b5b9250929050565b5f8083601f84011261334a57613349612ab6565b5b8235905067ffffffffffffffff811115613367576133666132dc565b5b60208301915083602082028301111561338357613382612b6d565b5b9250929050565b5f805f805f805f8060a0898b0312156133a6576133a5612aae565b5b5f89013567ffffffffffffffff8111156133c3576133c2612ab2565b5b6133cf8b828c016132e0565b9850985050602089013567ffffffffffffffff8111156133f2576133f1612ab2565b5b6133fe8b828c016132e0565b9650965050604089013567ffffffffffffffff81111561342157613420612ab2565b5b61342d8b828c01613335565b945094505060606134408b828c01612caa565b92505060806134518b828c01612d7a565b9150509295985092959890939650565b5f805f805f805f60e0888a03121561347c5761347b612aae565b5b5f6134898a828b01612bb7565b975050602061349a8a828b01612caa565b96505060406134ab8a828b01612caa565b95505060606134bc8a828b01612d7a565b945050608088013567ffffffffffffffff8111156134dd576134dc612ab2565b5b6134e98a828b01612e11565b93505060a088013567ffffffffffffffff81111561350a57613509612ab2565b5b6135168a828b01612e11565b92505060c088013567ffffffffffffffff81111561353757613536612ab2565b5b6135438a828b01612e11565b91505092959891949750929550565b61355b81612d53565b82525050565b5f6020820190506135745f830184613552565b92915050565b5f6020828403121561358f5761358e612aae565b5b5f61359c84828501612d7a565b91505092915050565b5f805f805f805f60e0888a0312156135c0576135bf612aae565b5b5f6135cd8a828b01612d7a565b97505060206135de8a828b01612caa565b96505060406135ef8a828b01612caa565b955050606088013567ffffffffffffffff8111156136105761360f612ab2565b5b61361c8a828b01612e11565b945050608088013567ffffffffffffffff81111561363d5761363c612ab2565b5b6136498a828b01612e11565b93505060a088013567ffffffffffffffff81111561366a57613669612ab2565b5b6136768a828b01612e11565b92505060c06136878a828b01612caa565b91505092959891949750929550565b5f805f805f805f80610100898b0312156136b3576136b2612aae565b5b5f6136c08b828c01612d7a565b98505060206136d18b828c01612caa565b97505060406136e28b828c01612d7a565b96505060606136f38b828c01612caa565b95505060806137048b828c01612d7a565b94505060a089013567ffffffffffffffff81111561372557613724612ab2565b5b6137318b828c01612e11565b93505060c089013567ffffffffffffffff81111561375257613751612ab2565b5b61375e8b828c01612e11565b92505060e089013567ffffffffffffffff81111561377f5761377e612ab2565b5b61378b8b828c01612e11565b9150509295985092959890939650565b5f805f805f805f60e0888a0312156137b6576137b5612aae565b5b5f6137c38a828b01612d7a565b97505060206137d48a828b01612caa565b96505060406137e58a828b01612caa565b95505060606137f68a828b01612d7a565b945050608088013567ffffffffffffffff81111561381757613816612ab2565b5b6138238a828b01612e11565b93505060a088013567ffffffffffffffff81111561384457613843612ab2565b5b6138508a828b01612e11565b92505060c088013567ffffffffffffffff81111561387157613870612ab2565b5b61387d8a828b01612e11565b91505092959891949750929550565b5f805f805f805f80610100898b0312156138a9576138a8612aae565b5b5f6138b68b828c01612d7a565b98505060206138c78b828c01612caa565b97505060406138d88b828c01612d7a565b96505060606138e98b828c01612d7a565b95505060806138fa8b828c01612caa565b94505060a061390b8b828c01612d7a565b93505060c061391c8b828c01612caa565b92505060e061392d8b828c01612d7a565b9150509295985092959890939650565b5f805f6060848603121561395457613953612aae565b5b5f61396186828701612d7a565b935050602061397286828701612d7a565b925050604061398386828701612caa565b9150509250925092565b5f67ffffffffffffffff8211156139a7576139a6612aca565b5b602082029050602081019050919050565b5f6139ca6139c58461398d565b612b28565b905080838252602082019050602084028301858111156139ed576139ec612b6d565b5b835b81811015613a165780613a028882612d7a565b8452602084019350506020810190506139ef565b5050509392505050565b5f82601f830112613a3457613a33612ab6565b5b8135613a448482602086016139b8565b91505092915050565b5f805f805f805f80610100898b031215613a6a57613a69612aae565b5b5f613a778b828c01612d7a565b985050602089013567ffffffffffffffff811115613a9857613a97612ab2565b5b613aa48b828c01613a20565b975050604089013567ffffffffffffffff811115613ac557613ac4612ab2565b5b613ad18b828c01612d26565b9650506060613ae28b828c01612caa565b9550506080613af38b828c01612d7a565b94505060a089013567ffffffffffffffff811115613b1457613b13612ab2565b5b613b208b828c01612e11565b93505060c089013567ffffffffffffffff811115613b4157613b40612ab2565b5b613b4d8b828c01612e11565b92505060e089013567ffffffffffffffff811115613b6e57613b6d612ab2565b5b613b7a8b828c01612e11565b9150509295985092959890939650565b5f8083601f840112613b9f57613b9e612ab6565b5b8235905067ffffffffffffffff811115613bbc57613bbb6132dc565b5b602083019150836020820283011115613bd857613bd7612b6d565b5b9250929050565b5f805f805f805f8060a0898b031215613bfb57613bfa612aae565b5b5f89013567ffffffffffffffff811115613c1857613c17612ab2565b5b613c248b828c016132e0565b9850985050602089013567ffffffffffffffff811115613c4757613c46612ab2565b5b613c538b828c01613b8a565b9650965050604089013567ffffffffffffffff811115613c7657613c75612ab2565b5b613c828b828c016132e0565b94509450506060613c958b828c01612caa565b9250506080613ca68b828c01612d7a565b9150509295985092959890939650565b5f82825260208201905092915050565b7f4e6f742061646d696e00000000000000000000000000000000000000000000005f82015250565b5f613cfa600983613cb6565b9150613d0582613cc6565b602082019050919050565b5f6020820190508181035f830152613d2781613cee565b9050919050565b7f4172726179206c656e677468206d69736d6174636800000000000000000000005f82015250565b5f613d62601583613cb6565b9150613d6d82613d2e565b602082019050919050565b5f6020820190508181035f830152613d8f81613d56565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b613dcc81612c8b565b82525050565b5f81519050919050565b5f5b83811015613df9578082015181840152602081019050613dde565b5f8484015250505050565b5f613e0e82613dd2565b613e188185613cb6565b9350613e28818560208601613ddc565b613e3181612aba565b840191505092915050565b5f60c082019050613e4f5f830189613552565b613e5c6020830188613552565b613e696040830187613dc3565b8181036060830152613e7b8186613e04565b90508181036080830152613e8f8185613e04565b905081810360a0830152613ea38184613e04565b9050979650505050505050565b5f606082019050613ec35f830186613552565b613ed06020830185613552565b613edd6040830184613dc3565b949350505050565b613eee81613020565b8114613ef8575f80fd5b50565b5f81519050613f0981613ee5565b92915050565b5f60208284031215613f2457613f23612aae565b5b5f613f3184828501613efb565b91505092915050565b5f604082019050613f4d5f830185613552565b613f5a6020830184613dc3565b9392505050565b5f602082019050613f745f830184613dc3565b92915050565b7f41413a207472616e7366657220616d6f756e7420657863656564732062616c615f8201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b5f613fd4602383613cb6565b9150613fdf82613f7a565b604082019050919050565b5f6020820190508181035f83015261400181613fc8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61403f82612c8b565b915061404a83612c8b565b925082820190508082111561406257614061614008565b5b92915050565b5f819050919050565b5f819050919050565b5f61409461408f61408a84614068565b614071565b612c8b565b9050919050565b6140a48161407a565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6140dc81612d53565b82525050565b5f6140ed83836140d3565b60208301905092915050565b5f602082019050919050565b5f61410f826140aa565b61411981856140b4565b9350614124836140c4565b805f5b8381101561415457815161413b88826140e2565b9750614146836140f9565b925050600181019050614127565b5085935050505092915050565b5f60a0820190506141745f830188613dc3565b614181602083018761409b565b81810360408301526141938186614105565b90506141a26060830185613552565b6141af6080830184613dc3565b9695505050505050565b5f815190506141c781612c94565b92915050565b5f6141df6141da84612c60565b612b28565b9050808382526020820190506020840283018581111561420257614201612b6d565b5b835b8181101561422b578061421788826141b9565b845260208401935050602081019050614204565b5050509392505050565b5f82601f83011261424957614248612ab6565b5b81516142598482602086016141cd565b91505092915050565b5f6020828403121561427757614276612aae565b5b5f82015167ffffffffffffffff81111561429457614293612ab2565b5b6142a084828501614235565b91505092915050565b5f60c0820190506142bc5f830189613dc3565b6142c96020830188613552565b6142d66040830187613552565b6142e36060830186613552565b6142f06080830185613dc3565b81810360a08301526143028184613e04565b9050979650505050505050565b5f6080820190506143225f830187613552565b81810360208301526143348186613e04565b905081810360408301526143488185613e04565b9050818103606083015261435c8184613e04565b905095945050505050565b5f81519050919050565b5f81905092915050565b5f61438582614367565b61438f8185614371565b935061439f818560208601613ddc565b80840191505092915050565b5f6143b6828461437b565b915081905092915050565b5f60c0820190506143d45f830189613552565b6143e16020830188613552565b6143ee6040830187613552565b6143fb6060830186613552565b6144086080830185613dc3565b81810360a083015261441a8184613e04565b9050979650505050505050565b7f4e6f20746f6b656e7300000000000000000000000000000000000000000000005f82015250565b5f61445b600983613cb6565b915061446682614427565b602082019050919050565b5f6020820190508181035f8301526144888161444f565b9050919050565b7f4e6f20726563697069656e7473000000000000000000000000000000000000005f82015250565b5f6144c3600d83613cb6565b91506144ce8261448f565b602082019050919050565b5f6020820190508181035f8301526144f0816144b7565b9050919050565b5f80fd5b5f80fd5b5f80fd5b5f808335600160200384360303811261451f5761451e6144f7565b5b80840192508235915067ffffffffffffffff821115614541576145406144fb565b5b60208301925060208202360383131561455d5761455c6144ff565b5b509250929050565b7f416d6f756e7473206d69736d61746368000000000000000000000000000000005f82015250565b5f614599601083613cb6565b91506145a482614565565b602082019050919050565b5f6020820190508181035f8301526145c68161458d565b9050919050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f614601600f83613cb6565b915061460c826145cd565b602082019050919050565b5f6020820190508181035f83015261462e816145f5565b9050919050565b50565b5f6146435f83613cb6565b915061464e82614635565b5f82019050919050565b5f60c08201905061466b5f830186613552565b6146786020830185613552565b6146856040830184613dc3565b818103606083015261469681614638565b905081810360808301526146a981614638565b905081810360a08301526146bc81614638565b9050949350505050565b7f4e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f6146fa600983613cb6565b9150614705826146c6565b602082019050919050565b5f6020820190508181035f830152614727816146ee565b9050919050565b7f496e76616c6964206f776e6572000000000000000000000000000000000000005f82015250565b5f614762600d83613cb6565b915061476d8261472e565b602082019050919050565b5f6020820190508181035f83015261478f81614756565b9050919050565b5f60e0820190506147a95f83018a613dc3565b6147b66020830189613552565b6147c36040830188613dc3565b6147d06060830187613dc3565b81810360808301526147e28186613e04565b905081810360a08301526147f68185613e04565b905081810360c083015261480a8184613e04565b905098975050505050505050565b5f60e08201905061482b5f83018a613552565b6148386020830189613552565b6148456040830188613dc3565b6148526060830187613dc3565b81810360808301526148648186613e04565b905081810360a08301526148788185613e04565b905081810360c083015261488c8184613e04565b905098975050505050505050565b7f4e6f20746f6b656e7320746f207374616b6500000000000000000000000000005f82015250565b5f6148ce601283613cb6565b91506148d98261489a565b602082019050919050565b5f6020820190508181035f8301526148fb816148c2565b9050919050565b7f496e76616c6964204e504320746f6b656e0000000000000000000000000000005f82015250565b5f614936601183613cb6565b915061494182614902565b602082019050919050565b5f6020820190508181035f8301526149638161492a565b9050919050565b7f496e76616c6964204e50432072656365697665720000000000000000000000005f82015250565b5f61499e601483613cb6565b91506149a98261496a565b602082019050919050565b5f6020820190508181035f8301526149cb81614992565b9050919050565b5f6040820190506149e55f830185613552565b6149f26020830184613552565b9392505050565b5f60208284031215614a0e57614a0d612aae565b5b5f614a1b848285016141b9565b91505092915050565b7f496e73756666696369656e74204e504320616c6c6f77616e63650000000000005f82015250565b5f614a58601a83613cb6565b9150614a6382614a24565b602082019050919050565b5f6020820190508181035f830152614a8581614a4c565b9050919050565b7f496e73756666696369656e74204e50432062616c616e636500000000000000005f82015250565b5f614ac0601883613cb6565b9150614acb82614a8c565b602082019050919050565b5f6020820190508181035f830152614aed81614ab4565b9050919050565b7f496e76616c6964204e4320746f6b656e000000000000000000000000000000005f82015250565b5f614b28601083613cb6565b9150614b3382614af4565b602082019050919050565b5f6020820190508181035f830152614b5581614b1c565b9050919050565b7f496e76616c6964204e43207265636569766572000000000000000000000000005f82015250565b5f614b90601383613cb6565b9150614b9b82614b5c565b602082019050919050565b5f6020820190508181035f830152614bbd81614b84565b9050919050565b7f496e73756666696369656e74204e4320616c6c6f77616e6365000000000000005f82015250565b5f614bf8601983613cb6565b9150614c0382614bc4565b602082019050919050565b5f6020820190508181035f830152614c2581614bec565b9050919050565b7f496e73756666696369656e74204e432062616c616e63650000000000000000005f82015250565b5f614c60601783613cb6565b9150614c6b82614c2c565b602082019050919050565b5f6020820190508181035f830152614c8d81614c54565b9050919050565b7f4f6e65206f72206d6f7265207472616e7366657273206661696c6564000000005f82015250565b5f614cc8601c83613cb6565b9150614cd382614c94565b602082019050919050565b5f6020820190508181035f830152614cf581614cbc565b9050919050565b5f60c082019050614d0f5f830189613dc3565b614d1c6020830188613dc3565b614d296040830187613552565b614d366060830186613552565b614d436080830185613dc3565b614d5060a0830184613552565b979650505050505050565b7f4c656e677468206d69736d617463683a20746f6b656e732d616d6f756e7473005f82015250565b5f614d8f601f83613cb6565b9150614d9a82614d5b565b602082019050919050565b5f6020820190508181035f830152614dbc81614d83565b9050919050565b7f4c656e677468206d69736d617463683a20746f6b656e732d72656365697665725f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f614e1d602183613cb6565b9150614e2882614dc3565b604082019050919050565b5f6020820190508181035f830152614e4a81614e11565b9050919050565b7f496e76616c696420746f6b656e7320636f756e740000000000000000000000005f82015250565b5f614e85601483613cb6565b9150614e9082614e51565b602082019050919050565b5f6020820190508181035f830152614eb281614e79565b9050919050565b5f81905092915050565b7f5472616e73666572206661696c656420666f7220746f6b656e20696e6465783a5f8201527f2000000000000000000000000000000000000000000000000000000000000000602082015250565b5f614f1d602183614eb9565b9150614f2882614ec3565b602182019050919050565b5f614f3d82613dd2565b614f478185614eb9565b9350614f57818560208601613ddc565b80840191505092915050565b5f614f6d82614f11565b9150614f798284614f33565b915081905092915050565b5f6020820190508181035f830152614f9c8184613e04565b905092915050565b5f819050919050565b5f614fbb6020840184612d7a565b905092915050565b5f602082019050919050565b5f614fda83856140b4565b9350614fe582614fa4565b805f5b8581101561501d57614ffa8284614fad565b61500488826140e2565b975061500f83614fc3565b925050600181019050614fe8565b5085925050509392505050565b5f82825260208201905092915050565b5f80fd5b82818337505050565b5f615052838561502a565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156150855761508461503a565b5b60208302925061509683858461503e565b82840190509392505050565b5f60a0820190508181035f8301526150bb818a8c614fcf565b905081810360208301526150d081888a615047565b905081810360408301526150e5818688614fcf565b90506150f46060830185613dc3565b6151016080830184613552565b9998505050505050505050565b5f8160e01c9050919050565b5f60033d11156151365760045f803e6151335f5161510e565b90505b90565b5f60443d106151c55761514a612aa5565b60043d036004823e80513d602482011167ffffffffffffffff821117156151725750506151c5565b808201805167ffffffffffffffff81111561519057505050506151c5565b80602083010160043d0385018111156151ad5750505050506151c5565b6151bc82602001850186612af7565b82955050505050505b90565b5f6151d282612c8b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361520457615203614008565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61524682612c8b565b915061525183612c8b565b9250826152615761526061520f565b5b828204905092915050565b5f61527682612c8b565b915061528183612c8b565b925082820390508181111561529957615298614008565b5b92915050565b5f6152a982612c8b565b91506152b483612c8b565b92508282026152c281612c8b565b915082820484148315176152d9576152d8614008565b5b5092915050565b5f60ff82169050919050565b5f6152f6826152e0565b9150615301836152e0565b9250828201905060ff81111561531a57615319614008565b5b9291505056fea2646970667358221220d2605631817ea3435fb3dbc6b4a0a6eb3049b9cde651915ab98da636b5d5a32564736f6c63430008180033

Deployed Bytecode

0x608060405260043610610113575f3560e01c80638da5cb5b1161009f578063a5ebcf7011610063578063a5ebcf7014610397578063a74c2bb6146103bf578063da3e3397146103e9578063e3c2f17914610425578063f6d850ab1461044d57610113565b80638da5cb5b146102b55780638dfc4daf146102df5780638f2839701461030f5780639553859914610337578063a146d9ea1461036757610113565b80634a1fda9b116100e65780634a1fda9b146101db5780635978d7341461020b57806380479e01146102335780638183059314610263578063880cdc311461028d57610113565b80630833c9c2146101175780630c6fe81c1461013f5780631a5577b21461016f5780633dec3f7c1461019f575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190612e3e565b610475565b005b61015960048036038101906101549190612f67565b61066d565b604051610166919061303a565b60405180910390f35b61018960048036038101906101849190613053565b610a33565b604051610196919061303a565b60405180910390f35b3480156101aa575f80fd5b506101c560048036038101906101c0919061311e565b610aa2565b6040516101d2919061303a565b60405180910390f35b6101f560048036038101906101f09190613223565b610c6d565b604051610202919061303a565b60405180910390f35b348015610216575f80fd5b50610231600480360381019061022c919061338a565b610f62565b005b61024d60048036038101906102489190613461565b611333565b60405161025a919061303a565b60405180910390f35b34801561026e575f80fd5b5061027761146e565b6040516102849190613561565b60405180910390f35b348015610298575f80fd5b506102b360048036038101906102ae919061357a565b611491565b005b3480156102c0575f80fd5b506102c961164c565b6040516102d69190613561565b60405180910390f35b6102f960048036038101906102f491906135a5565b611671565b604051610306919061303a565b60405180910390f35b34801561031a575f80fd5b506103356004803603810190610330919061357a565b61183c565b005b610351600480360381019061034c9190613696565b61190b565b60405161035e919061303a565b60405180910390f35b610381600480360381019061037c919061379b565b611a1d565b60405161038e919061303a565b60405180910390f35b3480156103a2575f80fd5b506103bd60048036038101906103b8919061388c565b611b17565b005b3480156103ca575f80fd5b506103d361221b565b6040516103e09190613561565b60405180910390f35b3480156103f4575f80fd5b5061040f600480360381019061040a919061393d565b612242565b60405161041c919061303a565b60405180910390f35b348015610430575f80fd5b5061044b60048036038101906104469190613a4d565b612332565b005b348015610458575f80fd5b50610473600480360381019061046e9190613bdf565b6125c8565b005b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610502576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f990613d10565b60405180910390fd5b8551875114610546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053d90613d78565b60405180910390fd5b5f5b87518110156106635787818151811061056457610563613d96565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166108fc88838151811061059857610597613d96565b5b602002602001015190811502906040515f60405180830381858888f193505050501580156105c8573d5f803e3d5ffd5b50858882815181106105dd576105dc613d96565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167fb92c7ac3d392b925613c718588320fe36feab2291c261e96b143a76960854a7d87338b868151811061063157610630613d96565b5b602002602001015189898960405161064e96959493929190613e3c565b60405180910390a38080600101915050610548565b5050505050505050565b5f8673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330886040518463ffffffff1660e01b81526004016106ab93929190613eb0565b6020604051808303815f875af11580156106c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106eb9190613f0f565b6106f3575f80fd5b8673ffffffffffffffffffffffffffffffffffffffff1663095ea7b389876040518363ffffffff1660e01b815260040161072e929190613f3a565b6020604051808303815f875af115801561074a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061076e9190613f0f565b610776575f80fd5b5f736e063655b80528733fee01666b0c5b5d5a120c8590508073ffffffffffffffffffffffffffffffffffffffff16630fb1810f856040518263ffffffff1660e01b81526004016107c79190613f61565b6020604051808303815f875af11580156107e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108079190613f0f565b610846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083d90613fea565b60405180910390fd5b5f8990505f600267ffffffffffffffff81111561086657610865612aca565b5b6040519080825280602002602001820160405280156108945781602001602082028036833780820191505090505b50905089815f815181106108ab576108aa613d96565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505088816001815181106108fa576108f9613d96565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff166338ed1739896001848962015180426109649190614035565b6040518663ffffffff1660e01b8152600401610984959493929190614161565b5f604051808303815f875af115801561099f573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906109c79190614262565b50878573ffffffffffffffffffffffffffffffffffffffff167ff46e8abbf58cd7515ce94cce393a370360056b029aea9573423d9915f3c2713388338e8e348e604051610a19969594939291906142a9565b60405180910390a360019350505050979650505050505050565b5f808611610a3f575f80fd5b34863373ffffffffffffffffffffffffffffffffffffffff167ff4eaef0ca629d99d6565a0c323daf0b269d494d5763c061948ebc8d24fe79a3888888888604051610a8d949392919061430f565b60405180910390a46001905095945050505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610afa575f80fd5b5f808a73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8b8b604051602401610b2b929190613f3a565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610b7991906143ab565b5f604051808303815f865af19150503d805f8114610bb2576040519150601f19603f3d011682016040523d82523d5f602084013e610bb7565b606091505b509150915081610bc5575f80fd5b878a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167f841f28d14bd2d38b5141338191403af5ba24bccfa6dde465b18bf9e944118fec8a338e8c8c8c604051610c2d96959493929190613e3c565b60405180910390a4818015610c5d57505f81511480610c5c575080806020019051810190610c5b9190613f0f565b5b5b9250505098975050505050505050565b5f8673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330886040518463ffffffff1660e01b8152600401610cab93929190613eb0565b6020604051808303815f875af1158015610cc7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ceb9190613f0f565b610cf3575f80fd5b8673ffffffffffffffffffffffffffffffffffffffff1663095ea7b389876040518363ffffffff1660e01b8152600401610d2e929190613f3a565b6020604051808303815f875af1158015610d4a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6e9190613f0f565b610d76575f80fd5b5f8890505f600267ffffffffffffffff811115610d9657610d95612aca565b5b604051908082528060200260200182016040528015610dc45781602001602082028036833780820191505090505b50905088815f81518110610ddb57610dda613d96565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508781600181518110610e2a57610e29613d96565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff166338ed173988600184886201518042610e949190614035565b6040518663ffffffff1660e01b8152600401610eb4959493929190614161565b5f604051808303815f875af1158015610ecf573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610ef79190614262565b50868473ffffffffffffffffffffffffffffffffffffffff167f955f533b3856348ef2263b99be4cacfd9e02672de1af0f032532714e4d07c74487338d8d348d604051610f49969594939291906143c1565b60405180910390a3600192505050979650505050505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe690613d10565b60405180910390fd5b5f8888905011611034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102b90614471565b60405180910390fd5b5f8686905011611079576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611070906144d9565b60405180910390fd5b5f5b88889050811015611328578686905085858381811061109d5761109c613d96565b5b90506020028101906110af9190614503565b9050146110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e8906145af565b60405180910390fd5b5f5b8787905081101561131a575f86868481811061111257611111613d96565b5b90506020028101906111249190614503565b8381811061113557611134613d96565b5b9050602002013590505f81111561130c575f8b8b8581811061115a57611159613d96565b5b905060200201602081019061116f919061357a565b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8b8b8681811061119d5761119c613d96565b5b90506020020160208101906111b2919061357a565b846040518363ffffffff1660e01b81526004016111d0929190613f3a565b6020604051808303815f875af11580156111ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112109190613f0f565b905080611252576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124990614617565b60405180910390fd5b858a8a8581811061126657611265613d96565b5b905060200201602081019061127b919061357a565b73ffffffffffffffffffffffffffffffffffffffff168d8d878181106112a4576112a3613d96565b5b90506020020160208101906112b9919061357a565b73ffffffffffffffffffffffffffffffffffffffff167f841f28d14bd2d38b5141338191403af5ba24bccfa6dde465b18bf9e944118fec88338760405161130293929190614658565b60405180910390a4505b5080806001019150506110f3565b50808060010191505061107b565b505050505050505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b990613d10565b60405180910390fd5b8773ffffffffffffffffffffffffffffffffffffffff166108fc8890811502906040515f60405180830381858888f19350505050158015611405573d5f803e3d5ffd5b50858873ffffffffffffffffffffffffffffffffffffffff167fb92c7ac3d392b925613c718588320fe36feab2291c261e96b143a76960854a7d87338b89898960405161145796959493929190613e3c565b60405180910390a360019050979650505050505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151790614710565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361158e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158590614778565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7660405160405180910390a38060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f80736e063655b80528733fee01666b0c5b5d5a120c8590508073ffffffffffffffffffffffffffffffffffffffff16630fb1810f846040518263ffffffff1660e01b81526004016116c39190613f61565b6020604051808303815f875af11580156116df573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117039190613f0f565b611742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173990613fea565b60405180910390fd5b5f8990505f8173ffffffffffffffffffffffffffffffffffffffff166323b872dd33308d6040518463ffffffff1660e01b815260040161178493929190613eb0565b6020604051808303815f875af11580156117a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117c49190613f0f565b9050806117cf575f80fd5b888b73ffffffffffffffffffffffffffffffffffffffff167ffe8feb43fc2038dc26d98ac0c3213144ee337aed43a49450489b9df256059a9b87338e348e8e8e6040516118229796959493929190614796565b60405180910390a360019350505050979650505050505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c090613d10565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f808990505f8173ffffffffffffffffffffffffffffffffffffffff166323b872dd338b8d6040518463ffffffff1660e01b815260040161194e93929190613eb0565b6020604051808303815f875af115801561196a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061198e9190613f0f565b905080611999575f80fd5b878b73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f5724317d3290623a36244d9e30d9ffc1b60a88825eb4a9f505b405ab18a8eceb8a338f348d8d8d604051611a039796959493929190614818565b60405180910390a460019250505098975050505050505050565b5f808890505f8173ffffffffffffffffffffffffffffffffffffffff166323b872dd33308c6040518463ffffffff1660e01b8152600401611a6093929190613eb0565b6020604051808303815f875af1158015611a7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aa09190613f0f565b905080611aab575f80fd5b878a73ffffffffffffffffffffffffffffffffffffffff167f3b817c55332b3830091d15b56469badae6d04d621da0e80aa7168deb277853e189338d348c8c8c604051611afe9796959493929190614818565b60405180910390a3600192505050979650505050505050565b5f871180611b2457505f84115b611b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5a906148e4565b60405180910390fd5b5f871115611dbe575f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1603611bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd09061494c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e906149b4565b60405180910390fd5b868873ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401611c839291906149d2565b602060405180830381865afa158015611c9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cc291906149f9565b1015611d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfa90614a6e565b60405180910390fd5b868873ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401611d3d9190613561565b602060405180830381865afa158015611d58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d7c91906149f9565b1015611dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db490614ad6565b60405180910390fd5b5b5f841115612019575f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611e34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2b90614b3e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ea2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9990614ba6565b60405180910390fd5b838573ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401611ede9291906149d2565b602060405180830381865afa158015611ef9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f1d91906149f9565b1015611f5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5590614c0e565b60405180910390fd5b838573ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401611f989190613561565b602060405180830381865afa158015611fb3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fd791906149f9565b1015612018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200f90614c76565b60405180910390fd5b5b5f600190505f8811156120b4575f8973ffffffffffffffffffffffffffffffffffffffff166323b872dd338a8c6040518463ffffffff1660e01b815260040161206493929190613eb0565b6020604051808303815f875af1158015612080573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120a49190613f0f565b90508180156120b05750805b9150505b5f85111561214a575f8673ffffffffffffffffffffffffffffffffffffffff166323b872dd3387896040518463ffffffff1660e01b81526004016120fa93929190613eb0565b6020604051808303815f875af1158015612116573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061213a9190613f0f565b90508180156121465750805b9150505b8061218a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218190614cde565b60405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ffcdcde0d3d5cce4183b6ae7dd0309c06b726db775c76638d66413553364afe118b898c8a8a8a60405161220896959493929190614cfc565b60405180910390a4505050505050505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461229a575f80fd5b5f8490505f8173ffffffffffffffffffffffffffffffffffffffff1663095ea7b386866040518363ffffffff1660e01b81526004016122da929190613f3a565b6020604051808303815f875af11580156122f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061231a9190613f0f565b905080612325575f80fd5b6001925050509392505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b690613d10565b60405180910390fd5b8551875114612403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fa90613d78565b60405180910390fd5b5f5b87518110156125bd575f8973ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8a848151811061243e5761243d613d96565b5b60200260200101518a858151811061245957612458613d96565b5b6020026020010151604051602401612472929190613f3a565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516124c091906143ab565b5f604051808303815f865af19150503d805f81146124f9576040519150601f19603f3d011682016040523d82523d5f602084013e6124fe565b606091505b505090508061250b575f80fd5b8689838151811061251f5761251e613d96565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167f841f28d14bd2d38b5141338191403af5ba24bccfa6dde465b18bf9e944118fec89338d888151811061258a57612589613d96565b5b60200260200101518b8b8b6040516125a796959493929190613e3c565b60405180910390a4508080600101915050612405565b505050505050505050565b858590508888905014612610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260790614da5565b60405180910390fd5b838390508888905014612658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264f90614e33565b60405180910390fd5b5f8888905011801561266e5750600a8888905011155b6126ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a490614e9b565b60405180910390fd5b5f5b888890508110156127cb575f8787838181106126ce576126cd613d96565b5b9050602002013511156127be575f61274f8a8a848181106126f2576126f1613d96565b5b9050602002016020810190612707919061357a565b3388888681811061271b5761271a613d96565b5b9050602002016020810190612730919061357a565b8b8b8781811061274357612742613d96565b5b90506020020135612832565b90508061275b83612927565b60405160200161276b9190614f63565b604051602081830303815290604052906127bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b29190614f84565b60405180910390fd5b50505b80806001019150506126af565b503373ffffffffffffffffffffffffffffffffffffffff167f701b79e259d46632fe806243aab9e55700028416c68051f3c7d42753414ccdd689898989898989896040516128209897969594939291906150a2565b60405180910390a25050505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff166323b872dd8585856040518463ffffffff1660e01b815260040161287093929190613eb0565b6020604051808303815f875af19250505080156128ab57506040513d601f19601f820116820180604052508101906128a89190613f0f565b60015b61291a576128b761511a565b806308c379a0036128df57506128cb615139565b806128d657506128e1565b5f91505061291f565b505b3d805f811461290b576040519150601f19603f3d011682016040523d82523d5f602084013e612910565b606091505b505f91505061291f565b809150505b949350505050565b60605f820361296d576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612aa0565b5f8290505f5b5f821461299c578080612985906151c8565b915050600a82612995919061523c565b9150612973565b5f8167ffffffffffffffff8111156129b7576129b6612aca565b5b6040519080825280601f01601f1916602001820160405280156129e95781602001600182028036833780820191505090505b5090505f8290505b5f8614612a9857600181612a05919061526c565b90505f600a8088612a16919061523c565b612a20919061529f565b87612a2b919061526c565b6030612a3791906152ec565b90505f8160f81b905080848481518110612a5457612a53613d96565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a88612a8f919061523c565b975050506129f1565b819450505050505b919050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612b0082612aba565b810181811067ffffffffffffffff82111715612b1f57612b1e612aca565b5b80604052505050565b5f612b31612aa5565b9050612b3d8282612af7565b919050565b5f67ffffffffffffffff821115612b5c57612b5b612aca565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612b9a82612b71565b9050919050565b612baa81612b90565b8114612bb4575f80fd5b50565b5f81359050612bc581612ba1565b92915050565b5f612bdd612bd884612b42565b612b28565b90508083825260208201905060208402830185811115612c0057612bff612b6d565b5b835b81811015612c295780612c158882612bb7565b845260208401935050602081019050612c02565b5050509392505050565b5f82601f830112612c4757612c46612ab6565b5b8135612c57848260208601612bcb565b91505092915050565b5f67ffffffffffffffff821115612c7a57612c79612aca565b5b602082029050602081019050919050565b5f819050919050565b612c9d81612c8b565b8114612ca7575f80fd5b50565b5f81359050612cb881612c94565b92915050565b5f612cd0612ccb84612c60565b612b28565b90508083825260208201905060208402830185811115612cf357612cf2612b6d565b5b835b81811015612d1c5780612d088882612caa565b845260208401935050602081019050612cf5565b5050509392505050565b5f82601f830112612d3a57612d39612ab6565b5b8135612d4a848260208601612cbe565b91505092915050565b5f612d5d82612b71565b9050919050565b612d6d81612d53565b8114612d77575f80fd5b50565b5f81359050612d8881612d64565b92915050565b5f80fd5b5f67ffffffffffffffff821115612dac57612dab612aca565b5b612db582612aba565b9050602081019050919050565b828183375f83830152505050565b5f612de2612ddd84612d92565b612b28565b905082815260208101848484011115612dfe57612dfd612d8e565b5b612e09848285612dc2565b509392505050565b5f82601f830112612e2557612e24612ab6565b5b8135612e35848260208601612dd0565b91505092915050565b5f805f805f805f60e0888a031215612e5957612e58612aae565b5b5f88013567ffffffffffffffff811115612e7657612e75612ab2565b5b612e828a828b01612c33565b975050602088013567ffffffffffffffff811115612ea357612ea2612ab2565b5b612eaf8a828b01612d26565b9650506040612ec08a828b01612caa565b9550506060612ed18a828b01612d7a565b945050608088013567ffffffffffffffff811115612ef257612ef1612ab2565b5b612efe8a828b01612e11565b93505060a088013567ffffffffffffffff811115612f1f57612f1e612ab2565b5b612f2b8a828b01612e11565b92505060c088013567ffffffffffffffff811115612f4c57612f4b612ab2565b5b612f588a828b01612e11565b91505092959891949750929550565b5f805f805f805f60e0888a031215612f8257612f81612aae565b5b5f612f8f8a828b01612d7a565b9750506020612fa08a828b01612d7a565b9650506040612fb18a828b01612d7a565b9550506060612fc28a828b01612caa565b945050608088013567ffffffffffffffff811115612fe357612fe2612ab2565b5b612fef8a828b01612e11565b93505060a06130008a828b01612caa565b92505060c06130118a828b01612d7a565b91505092959891949750929550565b5f8115159050919050565b61303481613020565b82525050565b5f60208201905061304d5f83018461302b565b92915050565b5f805f805f60a0868803121561306c5761306b612aae565b5b5f61307988828901612caa565b955050602061308a88828901612d7a565b945050604086013567ffffffffffffffff8111156130ab576130aa612ab2565b5b6130b788828901612e11565b935050606086013567ffffffffffffffff8111156130d8576130d7612ab2565b5b6130e488828901612e11565b925050608086013567ffffffffffffffff81111561310557613104612ab2565b5b61311188828901612e11565b9150509295509295909350565b5f805f805f805f80610100898b03121561313b5761313a612aae565b5b5f6131488b828c01612d7a565b98505060206131598b828c01612d7a565b975050604061316a8b828c01612caa565b965050606061317b8b828c01612caa565b955050608061318c8b828c01612d7a565b94505060a089013567ffffffffffffffff8111156131ad576131ac612ab2565b5b6131b98b828c01612e11565b93505060c089013567ffffffffffffffff8111156131da576131d9612ab2565b5b6131e68b828c01612e11565b92505060e089013567ffffffffffffffff81111561320757613206612ab2565b5b6132138b828c01612e11565b9150509295985092959890939650565b5f805f805f805f60e0888a03121561323e5761323d612aae565b5b5f61324b8a828b01612d7a565b975050602061325c8a828b01612d7a565b965050604061326d8a828b01612d7a565b955050606061327e8a828b01612caa565b945050608088013567ffffffffffffffff81111561329f5761329e612ab2565b5b6132ab8a828b01612e11565b93505060a06132bc8a828b01612d7a565b92505060c06132cd8a828b01612d7a565b91505092959891949750929550565b5f80fd5b5f8083601f8401126132f5576132f4612ab6565b5b8235905067ffffffffffffffff811115613312576133116132dc565b5b60208301915083602082028301111561332e5761332d612b6d565b5b9250929050565b5f8083601f84011261334a57613349612ab6565b5b8235905067ffffffffffffffff811115613367576133666132dc565b5b60208301915083602082028301111561338357613382612b6d565b5b9250929050565b5f805f805f805f8060a0898b0312156133a6576133a5612aae565b5b5f89013567ffffffffffffffff8111156133c3576133c2612ab2565b5b6133cf8b828c016132e0565b9850985050602089013567ffffffffffffffff8111156133f2576133f1612ab2565b5b6133fe8b828c016132e0565b9650965050604089013567ffffffffffffffff81111561342157613420612ab2565b5b61342d8b828c01613335565b945094505060606134408b828c01612caa565b92505060806134518b828c01612d7a565b9150509295985092959890939650565b5f805f805f805f60e0888a03121561347c5761347b612aae565b5b5f6134898a828b01612bb7565b975050602061349a8a828b01612caa565b96505060406134ab8a828b01612caa565b95505060606134bc8a828b01612d7a565b945050608088013567ffffffffffffffff8111156134dd576134dc612ab2565b5b6134e98a828b01612e11565b93505060a088013567ffffffffffffffff81111561350a57613509612ab2565b5b6135168a828b01612e11565b92505060c088013567ffffffffffffffff81111561353757613536612ab2565b5b6135438a828b01612e11565b91505092959891949750929550565b61355b81612d53565b82525050565b5f6020820190506135745f830184613552565b92915050565b5f6020828403121561358f5761358e612aae565b5b5f61359c84828501612d7a565b91505092915050565b5f805f805f805f60e0888a0312156135c0576135bf612aae565b5b5f6135cd8a828b01612d7a565b97505060206135de8a828b01612caa565b96505060406135ef8a828b01612caa565b955050606088013567ffffffffffffffff8111156136105761360f612ab2565b5b61361c8a828b01612e11565b945050608088013567ffffffffffffffff81111561363d5761363c612ab2565b5b6136498a828b01612e11565b93505060a088013567ffffffffffffffff81111561366a57613669612ab2565b5b6136768a828b01612e11565b92505060c06136878a828b01612caa565b91505092959891949750929550565b5f805f805f805f80610100898b0312156136b3576136b2612aae565b5b5f6136c08b828c01612d7a565b98505060206136d18b828c01612caa565b97505060406136e28b828c01612d7a565b96505060606136f38b828c01612caa565b95505060806137048b828c01612d7a565b94505060a089013567ffffffffffffffff81111561372557613724612ab2565b5b6137318b828c01612e11565b93505060c089013567ffffffffffffffff81111561375257613751612ab2565b5b61375e8b828c01612e11565b92505060e089013567ffffffffffffffff81111561377f5761377e612ab2565b5b61378b8b828c01612e11565b9150509295985092959890939650565b5f805f805f805f60e0888a0312156137b6576137b5612aae565b5b5f6137c38a828b01612d7a565b97505060206137d48a828b01612caa565b96505060406137e58a828b01612caa565b95505060606137f68a828b01612d7a565b945050608088013567ffffffffffffffff81111561381757613816612ab2565b5b6138238a828b01612e11565b93505060a088013567ffffffffffffffff81111561384457613843612ab2565b5b6138508a828b01612e11565b92505060c088013567ffffffffffffffff81111561387157613870612ab2565b5b61387d8a828b01612e11565b91505092959891949750929550565b5f805f805f805f80610100898b0312156138a9576138a8612aae565b5b5f6138b68b828c01612d7a565b98505060206138c78b828c01612caa565b97505060406138d88b828c01612d7a565b96505060606138e98b828c01612d7a565b95505060806138fa8b828c01612caa565b94505060a061390b8b828c01612d7a565b93505060c061391c8b828c01612caa565b92505060e061392d8b828c01612d7a565b9150509295985092959890939650565b5f805f6060848603121561395457613953612aae565b5b5f61396186828701612d7a565b935050602061397286828701612d7a565b925050604061398386828701612caa565b9150509250925092565b5f67ffffffffffffffff8211156139a7576139a6612aca565b5b602082029050602081019050919050565b5f6139ca6139c58461398d565b612b28565b905080838252602082019050602084028301858111156139ed576139ec612b6d565b5b835b81811015613a165780613a028882612d7a565b8452602084019350506020810190506139ef565b5050509392505050565b5f82601f830112613a3457613a33612ab6565b5b8135613a448482602086016139b8565b91505092915050565b5f805f805f805f80610100898b031215613a6a57613a69612aae565b5b5f613a778b828c01612d7a565b985050602089013567ffffffffffffffff811115613a9857613a97612ab2565b5b613aa48b828c01613a20565b975050604089013567ffffffffffffffff811115613ac557613ac4612ab2565b5b613ad18b828c01612d26565b9650506060613ae28b828c01612caa565b9550506080613af38b828c01612d7a565b94505060a089013567ffffffffffffffff811115613b1457613b13612ab2565b5b613b208b828c01612e11565b93505060c089013567ffffffffffffffff811115613b4157613b40612ab2565b5b613b4d8b828c01612e11565b92505060e089013567ffffffffffffffff811115613b6e57613b6d612ab2565b5b613b7a8b828c01612e11565b9150509295985092959890939650565b5f8083601f840112613b9f57613b9e612ab6565b5b8235905067ffffffffffffffff811115613bbc57613bbb6132dc565b5b602083019150836020820283011115613bd857613bd7612b6d565b5b9250929050565b5f805f805f805f8060a0898b031215613bfb57613bfa612aae565b5b5f89013567ffffffffffffffff811115613c1857613c17612ab2565b5b613c248b828c016132e0565b9850985050602089013567ffffffffffffffff811115613c4757613c46612ab2565b5b613c538b828c01613b8a565b9650965050604089013567ffffffffffffffff811115613c7657613c75612ab2565b5b613c828b828c016132e0565b94509450506060613c958b828c01612caa565b9250506080613ca68b828c01612d7a565b9150509295985092959890939650565b5f82825260208201905092915050565b7f4e6f742061646d696e00000000000000000000000000000000000000000000005f82015250565b5f613cfa600983613cb6565b9150613d0582613cc6565b602082019050919050565b5f6020820190508181035f830152613d2781613cee565b9050919050565b7f4172726179206c656e677468206d69736d6174636800000000000000000000005f82015250565b5f613d62601583613cb6565b9150613d6d82613d2e565b602082019050919050565b5f6020820190508181035f830152613d8f81613d56565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b613dcc81612c8b565b82525050565b5f81519050919050565b5f5b83811015613df9578082015181840152602081019050613dde565b5f8484015250505050565b5f613e0e82613dd2565b613e188185613cb6565b9350613e28818560208601613ddc565b613e3181612aba565b840191505092915050565b5f60c082019050613e4f5f830189613552565b613e5c6020830188613552565b613e696040830187613dc3565b8181036060830152613e7b8186613e04565b90508181036080830152613e8f8185613e04565b905081810360a0830152613ea38184613e04565b9050979650505050505050565b5f606082019050613ec35f830186613552565b613ed06020830185613552565b613edd6040830184613dc3565b949350505050565b613eee81613020565b8114613ef8575f80fd5b50565b5f81519050613f0981613ee5565b92915050565b5f60208284031215613f2457613f23612aae565b5b5f613f3184828501613efb565b91505092915050565b5f604082019050613f4d5f830185613552565b613f5a6020830184613dc3565b9392505050565b5f602082019050613f745f830184613dc3565b92915050565b7f41413a207472616e7366657220616d6f756e7420657863656564732062616c615f8201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b5f613fd4602383613cb6565b9150613fdf82613f7a565b604082019050919050565b5f6020820190508181035f83015261400181613fc8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61403f82612c8b565b915061404a83612c8b565b925082820190508082111561406257614061614008565b5b92915050565b5f819050919050565b5f819050919050565b5f61409461408f61408a84614068565b614071565b612c8b565b9050919050565b6140a48161407a565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6140dc81612d53565b82525050565b5f6140ed83836140d3565b60208301905092915050565b5f602082019050919050565b5f61410f826140aa565b61411981856140b4565b9350614124836140c4565b805f5b8381101561415457815161413b88826140e2565b9750614146836140f9565b925050600181019050614127565b5085935050505092915050565b5f60a0820190506141745f830188613dc3565b614181602083018761409b565b81810360408301526141938186614105565b90506141a26060830185613552565b6141af6080830184613dc3565b9695505050505050565b5f815190506141c781612c94565b92915050565b5f6141df6141da84612c60565b612b28565b9050808382526020820190506020840283018581111561420257614201612b6d565b5b835b8181101561422b578061421788826141b9565b845260208401935050602081019050614204565b5050509392505050565b5f82601f83011261424957614248612ab6565b5b81516142598482602086016141cd565b91505092915050565b5f6020828403121561427757614276612aae565b5b5f82015167ffffffffffffffff81111561429457614293612ab2565b5b6142a084828501614235565b91505092915050565b5f60c0820190506142bc5f830189613dc3565b6142c96020830188613552565b6142d66040830187613552565b6142e36060830186613552565b6142f06080830185613dc3565b81810360a08301526143028184613e04565b9050979650505050505050565b5f6080820190506143225f830187613552565b81810360208301526143348186613e04565b905081810360408301526143488185613e04565b9050818103606083015261435c8184613e04565b905095945050505050565b5f81519050919050565b5f81905092915050565b5f61438582614367565b61438f8185614371565b935061439f818560208601613ddc565b80840191505092915050565b5f6143b6828461437b565b915081905092915050565b5f60c0820190506143d45f830189613552565b6143e16020830188613552565b6143ee6040830187613552565b6143fb6060830186613552565b6144086080830185613dc3565b81810360a083015261441a8184613e04565b9050979650505050505050565b7f4e6f20746f6b656e7300000000000000000000000000000000000000000000005f82015250565b5f61445b600983613cb6565b915061446682614427565b602082019050919050565b5f6020820190508181035f8301526144888161444f565b9050919050565b7f4e6f20726563697069656e7473000000000000000000000000000000000000005f82015250565b5f6144c3600d83613cb6565b91506144ce8261448f565b602082019050919050565b5f6020820190508181035f8301526144f0816144b7565b9050919050565b5f80fd5b5f80fd5b5f80fd5b5f808335600160200384360303811261451f5761451e6144f7565b5b80840192508235915067ffffffffffffffff821115614541576145406144fb565b5b60208301925060208202360383131561455d5761455c6144ff565b5b509250929050565b7f416d6f756e7473206d69736d61746368000000000000000000000000000000005f82015250565b5f614599601083613cb6565b91506145a482614565565b602082019050919050565b5f6020820190508181035f8301526145c68161458d565b9050919050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f614601600f83613cb6565b915061460c826145cd565b602082019050919050565b5f6020820190508181035f83015261462e816145f5565b9050919050565b50565b5f6146435f83613cb6565b915061464e82614635565b5f82019050919050565b5f60c08201905061466b5f830186613552565b6146786020830185613552565b6146856040830184613dc3565b818103606083015261469681614638565b905081810360808301526146a981614638565b905081810360a08301526146bc81614638565b9050949350505050565b7f4e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f6146fa600983613cb6565b9150614705826146c6565b602082019050919050565b5f6020820190508181035f830152614727816146ee565b9050919050565b7f496e76616c6964206f776e6572000000000000000000000000000000000000005f82015250565b5f614762600d83613cb6565b915061476d8261472e565b602082019050919050565b5f6020820190508181035f83015261478f81614756565b9050919050565b5f60e0820190506147a95f83018a613dc3565b6147b66020830189613552565b6147c36040830188613dc3565b6147d06060830187613dc3565b81810360808301526147e28186613e04565b905081810360a08301526147f68185613e04565b905081810360c083015261480a8184613e04565b905098975050505050505050565b5f60e08201905061482b5f83018a613552565b6148386020830189613552565b6148456040830188613dc3565b6148526060830187613dc3565b81810360808301526148648186613e04565b905081810360a08301526148788185613e04565b905081810360c083015261488c8184613e04565b905098975050505050505050565b7f4e6f20746f6b656e7320746f207374616b6500000000000000000000000000005f82015250565b5f6148ce601283613cb6565b91506148d98261489a565b602082019050919050565b5f6020820190508181035f8301526148fb816148c2565b9050919050565b7f496e76616c6964204e504320746f6b656e0000000000000000000000000000005f82015250565b5f614936601183613cb6565b915061494182614902565b602082019050919050565b5f6020820190508181035f8301526149638161492a565b9050919050565b7f496e76616c6964204e50432072656365697665720000000000000000000000005f82015250565b5f61499e601483613cb6565b91506149a98261496a565b602082019050919050565b5f6020820190508181035f8301526149cb81614992565b9050919050565b5f6040820190506149e55f830185613552565b6149f26020830184613552565b9392505050565b5f60208284031215614a0e57614a0d612aae565b5b5f614a1b848285016141b9565b91505092915050565b7f496e73756666696369656e74204e504320616c6c6f77616e63650000000000005f82015250565b5f614a58601a83613cb6565b9150614a6382614a24565b602082019050919050565b5f6020820190508181035f830152614a8581614a4c565b9050919050565b7f496e73756666696369656e74204e50432062616c616e636500000000000000005f82015250565b5f614ac0601883613cb6565b9150614acb82614a8c565b602082019050919050565b5f6020820190508181035f830152614aed81614ab4565b9050919050565b7f496e76616c6964204e4320746f6b656e000000000000000000000000000000005f82015250565b5f614b28601083613cb6565b9150614b3382614af4565b602082019050919050565b5f6020820190508181035f830152614b5581614b1c565b9050919050565b7f496e76616c6964204e43207265636569766572000000000000000000000000005f82015250565b5f614b90601383613cb6565b9150614b9b82614b5c565b602082019050919050565b5f6020820190508181035f830152614bbd81614b84565b9050919050565b7f496e73756666696369656e74204e4320616c6c6f77616e6365000000000000005f82015250565b5f614bf8601983613cb6565b9150614c0382614bc4565b602082019050919050565b5f6020820190508181035f830152614c2581614bec565b9050919050565b7f496e73756666696369656e74204e432062616c616e63650000000000000000005f82015250565b5f614c60601783613cb6565b9150614c6b82614c2c565b602082019050919050565b5f6020820190508181035f830152614c8d81614c54565b9050919050565b7f4f6e65206f72206d6f7265207472616e7366657273206661696c6564000000005f82015250565b5f614cc8601c83613cb6565b9150614cd382614c94565b602082019050919050565b5f6020820190508181035f830152614cf581614cbc565b9050919050565b5f60c082019050614d0f5f830189613dc3565b614d1c6020830188613dc3565b614d296040830187613552565b614d366060830186613552565b614d436080830185613dc3565b614d5060a0830184613552565b979650505050505050565b7f4c656e677468206d69736d617463683a20746f6b656e732d616d6f756e7473005f82015250565b5f614d8f601f83613cb6565b9150614d9a82614d5b565b602082019050919050565b5f6020820190508181035f830152614dbc81614d83565b9050919050565b7f4c656e677468206d69736d617463683a20746f6b656e732d72656365697665725f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f614e1d602183613cb6565b9150614e2882614dc3565b604082019050919050565b5f6020820190508181035f830152614e4a81614e11565b9050919050565b7f496e76616c696420746f6b656e7320636f756e740000000000000000000000005f82015250565b5f614e85601483613cb6565b9150614e9082614e51565b602082019050919050565b5f6020820190508181035f830152614eb281614e79565b9050919050565b5f81905092915050565b7f5472616e73666572206661696c656420666f7220746f6b656e20696e6465783a5f8201527f2000000000000000000000000000000000000000000000000000000000000000602082015250565b5f614f1d602183614eb9565b9150614f2882614ec3565b602182019050919050565b5f614f3d82613dd2565b614f478185614eb9565b9350614f57818560208601613ddc565b80840191505092915050565b5f614f6d82614f11565b9150614f798284614f33565b915081905092915050565b5f6020820190508181035f830152614f9c8184613e04565b905092915050565b5f819050919050565b5f614fbb6020840184612d7a565b905092915050565b5f602082019050919050565b5f614fda83856140b4565b9350614fe582614fa4565b805f5b8581101561501d57614ffa8284614fad565b61500488826140e2565b975061500f83614fc3565b925050600181019050614fe8565b5085925050509392505050565b5f82825260208201905092915050565b5f80fd5b82818337505050565b5f615052838561502a565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156150855761508461503a565b5b60208302925061509683858461503e565b82840190509392505050565b5f60a0820190508181035f8301526150bb818a8c614fcf565b905081810360208301526150d081888a615047565b905081810360408301526150e5818688614fcf565b90506150f46060830185613dc3565b6151016080830184613552565b9998505050505050505050565b5f8160e01c9050919050565b5f60033d11156151365760045f803e6151335f5161510e565b90505b90565b5f60443d106151c55761514a612aa5565b60043d036004823e80513d602482011167ffffffffffffffff821117156151725750506151c5565b808201805167ffffffffffffffff81111561519057505050506151c5565b80602083010160043d0385018111156151ad5750505050506151c5565b6151bc82602001850186612af7565b82955050505050505b90565b5f6151d282612c8b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361520457615203614008565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61524682612c8b565b915061525183612c8b565b9250826152615761526061520f565b5b828204905092915050565b5f61527682612c8b565b915061528183612c8b565b925082820390508181111561529957615298614008565b5b92915050565b5f6152a982612c8b565b91506152b483612c8b565b92508282026152c281612c8b565b915082820484148315176152d9576152d8614008565b5b5092915050565b5f60ff82169050919050565b5f6152f6826152e0565b9150615301836152e0565b9250828201905060ff81111561531a57615319614008565b5b9291505056fea2646970667358221220d2605631817ea3435fb3dbc6b4a0a6eb3049b9cde651915ab98da636b5d5a32564736f6c63430008180033

Deployed Bytecode Sourcemap

145:14686:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2922:584;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10991:964;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8287:263;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3514:498;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10222:761;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4746:1176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2590:324;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;165:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11963:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;198:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9026:666;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2487:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9700:514;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8558:460;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5934:1962;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8196:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7906:282;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4020:718;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12172:1034;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2922:584;2436:9;;;;;;;;;;2422:23;;:10;:23;;;2414:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;3236:7:::1;:14;3215:10;:17;:35;3207:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;3295:6;3291:208;3307:10;:17;3305:1;:19;3291:208;;;3349:10;3360:1;3349:13;;;;;;;;:::i;:::-;;;;;;;;:22;;:34;3372:7;3380:1;3372:10;;;;;;;;:::i;:::-;;;;;;;;3349:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;3465:5;3438:10;3449:1;3438:13;;;;;;;;:::i;:::-;;;;;;;;3407:76;;;3414:10;3426;3453:7;3461:1;3453:10;;;;;;;;:::i;:::-;;;;;;;;3472:2;3476;3480;3407:76;;;;;;;;;;;:::i;:::-;;;;;;;;3326:3;;;;;;;3291:208;;;;2922:584:::0;;;;;;;:::o;10991:964::-;11174:4;11207:7;11200:28;;;11229:10;11248:4;11254:11;11200:66;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11192:75;;;;;;11295:7;11288:23;;;11312:10;11323:11;11288:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11280:56;;;;;;11349:25;11389:42;11349:83;;11453:13;:31;;;11485:8;11453:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11445:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;11546:27;11590:10;11546:55;;11612:21;11650:1;11636:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11612:40;;11673:7;11663:4;11668:1;11663:7;;;;;;;;:::i;:::-;;;;;;;:17;;;;;;;;;;;11701:7;11691:4;11696:1;11691:7;;;;;;;;:::i;:::-;;;;;;;:17;;;;;;;;;;;11719:13;:38;;;11758:11;11770:1;11772:4;11777:2;11799:6;11780:15;:25;;;;:::i;:::-;11719:87;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11895:11;11876:2;11824:99;;;11856:8;11865:10;11879:7;11887;11907:9;11917:5;11824:99;;;;;;;;;;;:::i;:::-;;;;;;;;11943:4;11936:11;;;;;10991:964;;;;;;;;;:::o;8287:263::-;8416:4;8448:1;8440:5;:9;8432:18;;;;;;8501:9;8495:5;8484:10;8466:54;;;8473:10;8511:2;8514;8517;8466:54;;;;;;;;;:::i;:::-;;;;;;;;8538:4;8531:11;;8287:263;;;;;;;:::o;3514:498::-;3667:4;3705:9;;;;;;;;;;;3691:23;;:10;:23;;;3683:32;;;;;;3727:12;3741:17;3762:5;:10;;3796;3808:2;3812:5;3773:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3762:57;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3726:93;;;;3840:7;3832:16;;;;;;3910:5;3901:2;3864:61;;3895:5;3864:61;;;3873:10;3884;3904:5;3916:2;3919;3922;3864:61;;;;;;;;;;;:::i;:::-;;;;;;;;3944:7;:57;;;;;3971:1;3956:4;:11;:16;:44;;;;3987:4;3976:24;;;;;;;;;;;;:::i;:::-;3956:44;3944:57;3936:66;;;;3514:498;;;;;;;;;;:::o;10222:761::-;10402:4;10435:7;10428:28;;;10457:10;10476:4;10482:11;10428:66;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10420:75;;;;;;10523:7;10516:23;;;10540:10;10551:11;10516:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10508:56;;;;;;10577:27;10621:10;10577:55;;10643:21;10681:1;10667:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10643:40;;10704:7;10694:4;10699:1;10694:7;;;;;;;;:::i;:::-;;;;;;;:17;;;;;;;;;;;10732:7;10722:4;10727:1;10722:7;;;;;;;;:::i;:::-;;;;;;;:17;;;;;;;;;;;10750:13;:38;;;10789:11;10801:1;10803:4;10808:2;10830:6;10811:15;:25;;;;:::i;:::-;10750:87;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10923:11;10904:2;10855:96;;;10882:10;10893;10907:7;10915;10935:9;10945:5;10855:96;;;;;;;;;;;:::i;:::-;;;;;;;;10971:4;10964:11;;;;10222:761;;;;;;;;;:::o;4746:1176::-;2436:9;;;;;;;;;;2422:23;;:10;:23;;;2414:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;5009:1:::1;4993:6;;:13;;:17;4985:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;5063:1;5043:10;;:17;;:21;5035:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;5108:9;5103:812;5127:6;;:13;;5123:1;:17;5103:812;;;5191:10;;:17;;5170:7;;5178:1;5170:10;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;:17;;:38;5162:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5263:9;5258:646;5282:10;;:17;;5278:1;:21;5258:646;;;5325:14;5342:7;;5350:1;5342:10;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;5353:1;5342:13;;;;;;;:::i;:::-;;;;;;;;5325:30;;5387:1;5378:6;:10;5374:515;;;5413:12;5435:6;;5442:1;5435:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5428:26;;;5455:10;;5466:1;5455:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5470:6;5428:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5413:64;;5508:7;5500:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;5803:5;5730:10;;5741:1;5730:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5585:284;;5694:6;;5701:1;5694:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5585:284;;;5620:10;5657;5770:6;5585:284;;;;;;;;:::i;:::-;;;;;;;;5390:499;5374:515;5306:598;5301:3;;;;;;;5258:646;;;;5142:3;;;;;;;5103:812;;;;4746:1176:::0;;;;;;;;:::o;2590:324::-;2765:4;2436:9;;;;;;;;;;;2422:23;;:10;:23;;;2414:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;2782:6:::1;:15;;:22;2798:5;2782:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;2866:5;2851:6;2820:64;;;2827:10;2839;2859:5;2873:2;2877;2881;2820:64;;;;;;;;;;;:::i;:::-;;;;;;;;2902:4;2895:11;;2590:324:::0;;;;;;;;;:::o;165:24::-;;;;;;;;;;;;:::o;11963:197::-;2267:5;;;;;;;;;;;2253:19;;:10;:19;;;2245:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;12060:1:::1;12040:22;;:8;:22;;::::0;12032:48:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12116:8;12096:29;;12109:5;;;;;;;;;;;12096:29;;;;;;;;;;;;12144:8;12136:5;;:16;;;;;;;;;;;;;;;;;;11963:197:::0;:::o;198:20::-;;;;;;;;;;;;;:::o;9026:666::-;9199:4;9217:25;9257:42;9217:83;;9321:13;:31;;;9353:8;9321:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9313:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;9414:12;9436:9;9414:32;;9457:12;9472:5;:18;;;9491:10;9510:4;9516:11;9472:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9457:71;;9547:7;9539:16;;;;;;9645:5;9613:9;9573:87;;;9593:8;9602:10;9623:11;9635:9;9651:2;9654;9657;9573:87;;;;;;;;;;;;:::i;:::-;;;;;;;;9680:4;9673:11;;;;;9026:666;;;;;;;;;:::o;2487:95::-;2436:9;;;;;;;;;;2422:23;;:10;:23;;;2414:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;2566:8:::1;2554:9;::::0;:20:::1;;;;;;;;;;;;;;;;;;2487:95:::0;:::o;9700:514::-;9894:4;9910:12;9932:9;9910:32;;9953:12;9968:5;:18;;;9987:10;10006:14;10022:11;9968:66;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9953:81;;10053:7;10045:16;;;;;;10167:5;10135:9;10079:103;;10120:14;10079:103;;;10098:10;10109;10145:11;10157:9;10173:2;10176;10179;10079:103;;;;;;;;;;;;:::i;:::-;;;;;;;;10202:4;10195:11;;;;9700:514;;;;;;;;;;:::o;8558:460::-;8727:4;8743:12;8765:9;8743:32;;8786:12;8801:5;:18;;;8820:10;8839:4;8845:11;8801:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8786:71;;8876:7;8868:16;;;;;;8971:5;8939:9;8902:84;;;8917:10;8928;8949:11;8961:9;8977:2;8980;8983;8902:84;;;;;;;;;;;;:::i;:::-;;;;;;;;9006:4;8999:11;;;;8558:460;;;;;;;;;:::o;5934:1962::-;6226:1;6214:9;:13;:29;;;;6242:1;6231:8;:12;6214:29;6206:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;6311:1;6299:9;:13;6295:394;;;6357:1;6337:22;;:8;:22;;;6329:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;6427:1;6404:25;;:11;:25;;;6396:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;6534:9;6484:8;6477:26;;;6504:10;6524:4;6477:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:66;;6469:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;6639:9;6604:8;6597:26;;;6624:10;6597:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:51;;6589:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;6295:394;6724:1;6713:8;:12;6709:383;;;6769:1;6750:21;;:7;:21;;;6742:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;6837:1;6815:24;;:10;:24;;;6807:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6942:8;6893:7;6886:25;;;6912:10;6932:4;6886:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:64;;6878:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;7044:8;7010:7;7003:25;;;7029:10;7003:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:49;;6995:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6709:383;7112:19;7134:4;7112:26;;7175:1;7163:9;:13;7159:189;;;7193:15;7218:8;7211:29;;;7241:10;7253:11;7266:9;7211:65;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7193:83;;7308:14;:28;;;;;7326:10;7308:28;7291:45;;7178:170;7159:189;7383:1;7372:8;:12;7368:183;;;7401:14;7425:7;7418:28;;;7447:10;7459;7471:8;7418:62;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7401:79;;7512:14;:27;;;;;7530:9;7512:27;7495:44;;7386:165;7368:183;7579:14;7571:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;7751:7;7652:236;;7704:8;7652:236;;7679:10;7652:236;;;7727:9;7773:8;7796:11;7822:10;7847:5;7867:10;7652:236;;;;;;;;;;;:::i;:::-;;;;;;;;6195:1701;5934:1962;;;;;;;;:::o;8196:83::-;8236:7;8262:9;;;;;;;;;;;8255:16;;8196:83;:::o;7906:282::-;7988:4;8026:9;;;;;;;;;;;8012:23;;:10;:23;;;8004:32;;;;;;8047:12;8069:9;8047:32;;8090:12;8105:5;:13;;;8119:4;8124:6;8105:26;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8090:41;;8150:7;8142:16;;;;;;8176:4;8169:11;;;;7906:282;;;;;:::o;4020:718::-;2436:9;;;;;;;;;;2422:23;;:10;:23;;;2414:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;4352:7:::1;:14;4331:10;:17;:35;4323:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;4425:6;4421:309;4437:10;:17;4435:1;:19;4421:309;;;4480:12;4497:5;:10;;4531;4543;4554:1;4543:13;;;;;;;;:::i;:::-;;;;;;;;4558:7;4566:1;4558:10;;;;;;;;:::i;:::-;;;;;;;;4508:61;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4497:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4479:91;;;4597:7;4589:16;;;::::0;::::1;;4696:5;4669:10;4680:1;4669:13;;;;;;;;:::i;:::-;;;;;;;;4629:85;;4662:5;4629:85;;;4638:10;4650;4684:7;4692:1;4684:10;;;;;;;;:::i;:::-;;;;;;;;4703:2;4707;4711;4629:85;;;;;;;;;;;:::i;:::-;;;;;;;;4460:270;4456:3;;;;;;;4421:309;;;;4020:718:::0;;;;;;;;:::o;12172:1034::-;12430:7;;:14;;12413:6;;:13;;:31;12405:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;12516:9;;:16;;12499:6;;:13;;:33;12491:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12605:1;12589:6;;:13;;:17;:40;;;;;12627:2;12610:6;;:13;;:19;;12589:40;12581:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12680:9;12675:429;12699:6;;:13;;12695:1;:17;12675:429;;;12751:1;12738:7;;12746:1;12738:10;;;;;;;:::i;:::-;;;;;;;;:14;12734:359;;;12773:12;12788:177;12833:6;;12840:1;12833:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12866:10;12900:9;;12910:1;12900:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12936:7;;12944:1;12936:10;;;;;;;:::i;:::-;;;;;;;;12788:22;:177::i;:::-;12773:192;;12992:7;13062:12;13072:1;13062:9;:12::i;:::-;13008:67;;;;;;;;:::i;:::-;;;;;;;;;;;;;12984:93;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;12754:339;12734:359;12714:3;;;;;;;12675:429;;;;13140:10;13119:79;;;13152:6;;13160:7;;13169:9;;13180:5;13187:10;13119:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;12172:1034;;;;;;;;:::o;13218:422::-;13368:4;13396:5;13389:26;;;13416:4;13422:2;13426:6;13389:44;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;13385:248;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13555:5;13548:12;;;;;13385:248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13616:5;13609:12;;;;;13385:248;13479:7;13472:14;;;13218:422;;;;;;;:::o;14268:560::-;14322:13;14358:1;14352:2;:7;14348:23;;14361:10;;;;;;;;;;;;;;;;;;;;;14348:23;14382:9;14394:2;14382:14;;14407;14432:72;14444:1;14439;:6;14432:72;;14462:8;;;;;:::i;:::-;;;;14490:2;14485:7;;;;;:::i;:::-;;;14432:72;;;14514:17;14544:6;14534:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14514:37;;14562:9;14574:6;14562:18;;14591:200;14604:1;14598:2;:7;14591:200;;14630:1;14626;:5;;;;:::i;:::-;14622:9;;14646:10;14686:2;14681;14676;:7;;;;:::i;:::-;:12;;;;:::i;:::-;14671:2;:17;;;;:::i;:::-;14660:2;:29;;;;:::i;:::-;14646:44;;14705:9;14724:4;14717:12;;14705:24;;14754:2;14744:4;14749:1;14744:7;;;;;;;;:::i;:::-;;;;;:12;;;;;;;;;;;14777:2;14771:8;;;;;:::i;:::-;;;14607:184;;14591:200;;;14815:4;14801:19;;;;;;14268:560;;;;:::o;7:75:4:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:319::-;1258:4;1348:18;1340:6;1337:30;1334:56;;;1370:18;;:::i;:::-;1334:56;1420:4;1412:6;1408:17;1400:25;;1480:4;1474;1470:15;1462:23;;1173:319;;;:::o;1498:117::-;1607:1;1604;1597:12;1621:126;1658:7;1698:42;1691:5;1687:54;1676:65;;1621:126;;;:::o;1753:104::-;1798:7;1827:24;1845:5;1827:24;:::i;:::-;1816:35;;1753:104;;;:::o;1863:138::-;1944:32;1970:5;1944:32;:::i;:::-;1937:5;1934:43;1924:71;;1991:1;1988;1981:12;1924:71;1863:138;:::o;2007:155::-;2061:5;2099:6;2086:20;2077:29;;2115:41;2150:5;2115:41;:::i;:::-;2007:155;;;;:::o;2193:734::-;2297:5;2322:89;2338:72;2403:6;2338:72;:::i;:::-;2322:89;:::i;:::-;2313:98;;2431:5;2460:6;2453:5;2446:21;2494:4;2487:5;2483:16;2476:23;;2547:4;2539:6;2535:17;2527:6;2523:30;2576:3;2568:6;2565:15;2562:122;;;2595:79;;:::i;:::-;2562:122;2710:6;2693:228;2727:6;2722:3;2719:15;2693:228;;;2802:3;2831:45;2872:3;2860:10;2831:45;:::i;:::-;2826:3;2819:58;2906:4;2901:3;2897:14;2890:21;;2769:152;2753:4;2748:3;2744:14;2737:21;;2693:228;;;2697:21;2303:624;;2193:734;;;;;:::o;2958:386::-;3037:5;3086:3;3079:4;3071:6;3067:17;3063:27;3053:122;;3094:79;;:::i;:::-;3053:122;3211:6;3198:20;3236:102;3334:3;3326:6;3319:4;3311:6;3307:17;3236:102;:::i;:::-;3227:111;;3043:301;2958:386;;;;:::o;3350:311::-;3427:4;3517:18;3509:6;3506:30;3503:56;;;3539:18;;:::i;:::-;3503:56;3589:4;3581:6;3577:17;3569:25;;3649:4;3643;3639:15;3631:23;;3350:311;;;:::o;3667:77::-;3704:7;3733:5;3722:16;;3667:77;;;:::o;3750:122::-;3823:24;3841:5;3823:24;:::i;:::-;3816:5;3813:35;3803:63;;3862:1;3859;3852:12;3803:63;3750:122;:::o;3878:139::-;3924:5;3962:6;3949:20;3940:29;;3978:33;4005:5;3978:33;:::i;:::-;3878:139;;;;:::o;4040:710::-;4136:5;4161:81;4177:64;4234:6;4177:64;:::i;:::-;4161:81;:::i;:::-;4152:90;;4262:5;4291:6;4284:5;4277:21;4325:4;4318:5;4314:16;4307:23;;4378:4;4370:6;4366:17;4358:6;4354:30;4407:3;4399:6;4396:15;4393:122;;;4426:79;;:::i;:::-;4393:122;4541:6;4524:220;4558:6;4553:3;4550:15;4524:220;;;4633:3;4662:37;4695:3;4683:10;4662:37;:::i;:::-;4657:3;4650:50;4729:4;4724:3;4720:14;4713:21;;4600:144;4584:4;4579:3;4575:14;4568:21;;4524:220;;;4528:21;4142:608;;4040:710;;;;;:::o;4773:370::-;4844:5;4893:3;4886:4;4878:6;4874:17;4870:27;4860:122;;4901:79;;:::i;:::-;4860:122;5018:6;5005:20;5043:94;5133:3;5125:6;5118:4;5110:6;5106:17;5043:94;:::i;:::-;5034:103;;4850:293;4773:370;;;;:::o;5149:96::-;5186:7;5215:24;5233:5;5215:24;:::i;:::-;5204:35;;5149:96;;;:::o;5251:122::-;5324:24;5342:5;5324:24;:::i;:::-;5317:5;5314:35;5304:63;;5363:1;5360;5353:12;5304:63;5251:122;:::o;5379:139::-;5425:5;5463:6;5450:20;5441:29;;5479:33;5506:5;5479:33;:::i;:::-;5379:139;;;;:::o;5524:117::-;5633:1;5630;5623:12;5647:308;5709:4;5799:18;5791:6;5788:30;5785:56;;;5821:18;;:::i;:::-;5785:56;5859:29;5881:6;5859:29;:::i;:::-;5851:37;;5943:4;5937;5933:15;5925:23;;5647:308;;;:::o;5961:146::-;6058:6;6053:3;6048;6035:30;6099:1;6090:6;6085:3;6081:16;6074:27;5961:146;;;:::o;6113:425::-;6191:5;6216:66;6232:49;6274:6;6232:49;:::i;:::-;6216:66;:::i;:::-;6207:75;;6305:6;6298:5;6291:21;6343:4;6336:5;6332:16;6381:3;6372:6;6367:3;6363:16;6360:25;6357:112;;;6388:79;;:::i;:::-;6357:112;6478:54;6525:6;6520:3;6515;6478:54;:::i;:::-;6197:341;6113:425;;;;;:::o;6558:340::-;6614:5;6663:3;6656:4;6648:6;6644:17;6640:27;6630:122;;6671:79;;:::i;:::-;6630:122;6788:6;6775:20;6813:79;6888:3;6880:6;6873:4;6865:6;6861:17;6813:79;:::i;:::-;6804:88;;6620:278;6558:340;;;;:::o;6904:2179::-;7105:6;7113;7121;7129;7137;7145;7153;7202:3;7190:9;7181:7;7177:23;7173:33;7170:120;;;7209:79;;:::i;:::-;7170:120;7357:1;7346:9;7342:17;7329:31;7387:18;7379:6;7376:30;7373:117;;;7409:79;;:::i;:::-;7373:117;7514:86;7592:7;7583:6;7572:9;7568:22;7514:86;:::i;:::-;7504:96;;7300:310;7677:2;7666:9;7662:18;7649:32;7708:18;7700:6;7697:30;7694:117;;;7730:79;;:::i;:::-;7694:117;7835:78;7905:7;7896:6;7885:9;7881:22;7835:78;:::i;:::-;7825:88;;7620:303;7962:2;7988:53;8033:7;8024:6;8013:9;8009:22;7988:53;:::i;:::-;7978:63;;7933:118;8090:2;8116:53;8161:7;8152:6;8141:9;8137:22;8116:53;:::i;:::-;8106:63;;8061:118;8246:3;8235:9;8231:19;8218:33;8278:18;8270:6;8267:30;8264:117;;;8300:79;;:::i;:::-;8264:117;8405:63;8460:7;8451:6;8440:9;8436:22;8405:63;:::i;:::-;8395:73;;8189:289;8545:3;8534:9;8530:19;8517:33;8577:18;8569:6;8566:30;8563:117;;;8599:79;;:::i;:::-;8563:117;8704:63;8759:7;8750:6;8739:9;8735:22;8704:63;:::i;:::-;8694:73;;8488:289;8844:3;8833:9;8829:19;8816:33;8876:18;8868:6;8865:30;8862:117;;;8898:79;;:::i;:::-;8862:117;9003:63;9058:7;9049:6;9038:9;9034:22;9003:63;:::i;:::-;8993:73;;8787:289;6904:2179;;;;;;;;;;:::o;9089:1383::-;9212:6;9220;9228;9236;9244;9252;9260;9309:3;9297:9;9288:7;9284:23;9280:33;9277:120;;;9316:79;;:::i;:::-;9277:120;9436:1;9461:53;9506:7;9497:6;9486:9;9482:22;9461:53;:::i;:::-;9451:63;;9407:117;9563:2;9589:53;9634:7;9625:6;9614:9;9610:22;9589:53;:::i;:::-;9579:63;;9534:118;9691:2;9717:53;9762:7;9753:6;9742:9;9738:22;9717:53;:::i;:::-;9707:63;;9662:118;9819:2;9845:53;9890:7;9881:6;9870:9;9866:22;9845:53;:::i;:::-;9835:63;;9790:118;9975:3;9964:9;9960:19;9947:33;10007:18;9999:6;9996:30;9993:117;;;10029:79;;:::i;:::-;9993:117;10134:63;10189:7;10180:6;10169:9;10165:22;10134:63;:::i;:::-;10124:73;;9918:289;10246:3;10273:53;10318:7;10309:6;10298:9;10294:22;10273:53;:::i;:::-;10263:63;;10217:119;10375:3;10402:53;10447:7;10438:6;10427:9;10423:22;10402:53;:::i;:::-;10392:63;;10346:119;9089:1383;;;;;;;;;;:::o;10478:90::-;10512:7;10555:5;10548:13;10541:21;10530:32;;10478:90;;;:::o;10574:109::-;10655:21;10670:5;10655:21;:::i;:::-;10650:3;10643:34;10574:109;;:::o;10689:210::-;10776:4;10814:2;10803:9;10799:18;10791:26;;10827:65;10889:1;10878:9;10874:17;10865:6;10827:65;:::i;:::-;10689:210;;;;:::o;10905:1451::-;11030:6;11038;11046;11054;11062;11111:3;11099:9;11090:7;11086:23;11082:33;11079:120;;;11118:79;;:::i;:::-;11079:120;11238:1;11263:53;11308:7;11299:6;11288:9;11284:22;11263:53;:::i;:::-;11253:63;;11209:117;11365:2;11391:53;11436:7;11427:6;11416:9;11412:22;11391:53;:::i;:::-;11381:63;;11336:118;11521:2;11510:9;11506:18;11493:32;11552:18;11544:6;11541:30;11538:117;;;11574:79;;:::i;:::-;11538:117;11679:63;11734:7;11725:6;11714:9;11710:22;11679:63;:::i;:::-;11669:73;;11464:288;11819:2;11808:9;11804:18;11791:32;11850:18;11842:6;11839:30;11836:117;;;11872:79;;:::i;:::-;11836:117;11977:63;12032:7;12023:6;12012:9;12008:22;11977:63;:::i;:::-;11967:73;;11762:288;12117:3;12106:9;12102:19;12089:33;12149:18;12141:6;12138:30;12135:117;;;12171:79;;:::i;:::-;12135:117;12276:63;12331:7;12322:6;12311:9;12307:22;12276:63;:::i;:::-;12266:73;;12060:289;10905:1451;;;;;;;;:::o;12362:1889::-;12514:6;12522;12530;12538;12546;12554;12562;12570;12619:3;12607:9;12598:7;12594:23;12590:33;12587:120;;;12626:79;;:::i;:::-;12587:120;12746:1;12771:53;12816:7;12807:6;12796:9;12792:22;12771:53;:::i;:::-;12761:63;;12717:117;12873:2;12899:53;12944:7;12935:6;12924:9;12920:22;12899:53;:::i;:::-;12889:63;;12844:118;13001:2;13027:53;13072:7;13063:6;13052:9;13048:22;13027:53;:::i;:::-;13017:63;;12972:118;13129:2;13155:53;13200:7;13191:6;13180:9;13176:22;13155:53;:::i;:::-;13145:63;;13100:118;13257:3;13284:53;13329:7;13320:6;13309:9;13305:22;13284:53;:::i;:::-;13274:63;;13228:119;13414:3;13403:9;13399:19;13386:33;13446:18;13438:6;13435:30;13432:117;;;13468:79;;:::i;:::-;13432:117;13573:63;13628:7;13619:6;13608:9;13604:22;13573:63;:::i;:::-;13563:73;;13357:289;13713:3;13702:9;13698:19;13685:33;13745:18;13737:6;13734:30;13731:117;;;13767:79;;:::i;:::-;13731:117;13872:63;13927:7;13918:6;13907:9;13903:22;13872:63;:::i;:::-;13862:73;;13656:289;14012:3;14001:9;13997:19;13984:33;14044:18;14036:6;14033:30;14030:117;;;14066:79;;:::i;:::-;14030:117;14171:63;14226:7;14217:6;14206:9;14202:22;14171:63;:::i;:::-;14161:73;;13955:289;12362:1889;;;;;;;;;;;:::o;14257:1383::-;14380:6;14388;14396;14404;14412;14420;14428;14477:3;14465:9;14456:7;14452:23;14448:33;14445:120;;;14484:79;;:::i;:::-;14445:120;14604:1;14629:53;14674:7;14665:6;14654:9;14650:22;14629:53;:::i;:::-;14619:63;;14575:117;14731:2;14757:53;14802:7;14793:6;14782:9;14778:22;14757:53;:::i;:::-;14747:63;;14702:118;14859:2;14885:53;14930:7;14921:6;14910:9;14906:22;14885:53;:::i;:::-;14875:63;;14830:118;14987:2;15013:53;15058:7;15049:6;15038:9;15034:22;15013:53;:::i;:::-;15003:63;;14958:118;15143:3;15132:9;15128:19;15115:33;15175:18;15167:6;15164:30;15161:117;;;15197:79;;:::i;:::-;15161:117;15302:63;15357:7;15348:6;15337:9;15333:22;15302:63;:::i;:::-;15292:73;;15086:289;15414:3;15441:53;15486:7;15477:6;15466:9;15462:22;15441:53;:::i;:::-;15431:63;;15385:119;15543:3;15570:53;15615:7;15606:6;15595:9;15591:22;15570:53;:::i;:::-;15560:63;;15514:119;14257:1383;;;;;;;;;;:::o;15646:117::-;15755:1;15752;15745:12;15786:568;15859:8;15869:6;15919:3;15912:4;15904:6;15900:17;15896:27;15886:122;;15927:79;;:::i;:::-;15886:122;16040:6;16027:20;16017:30;;16070:18;16062:6;16059:30;16056:117;;;16092:79;;:::i;:::-;16056:117;16206:4;16198:6;16194:17;16182:29;;16260:3;16252:4;16244:6;16240:17;16230:8;16226:32;16223:41;16220:128;;;16267:79;;:::i;:::-;16220:128;15786:568;;;;;:::o;16379:595::-;16479:8;16489:6;16539:3;16532:4;16524:6;16520:17;16516:27;16506:122;;16547:79;;:::i;:::-;16506:122;16660:6;16647:20;16637:30;;16690:18;16682:6;16679:30;16676:117;;;16712:79;;:::i;:::-;16676:117;16826:4;16818:6;16814:17;16802:29;;16880:3;16872:4;16864:6;16860:17;16850:8;16846:32;16843:41;16840:128;;;16887:79;;:::i;:::-;16840:128;16379:595;;;;;:::o;16980:1655::-;17183:6;17191;17199;17207;17215;17223;17231;17239;17288:3;17276:9;17267:7;17263:23;17259:33;17256:120;;;17295:79;;:::i;:::-;17256:120;17443:1;17432:9;17428:17;17415:31;17473:18;17465:6;17462:30;17459:117;;;17495:79;;:::i;:::-;17459:117;17608:80;17680:7;17671:6;17660:9;17656:22;17608:80;:::i;:::-;17590:98;;;;17386:312;17765:2;17754:9;17750:18;17737:32;17796:18;17788:6;17785:30;17782:117;;;17818:79;;:::i;:::-;17782:117;17931:80;18003:7;17994:6;17983:9;17979:22;17931:80;:::i;:::-;17913:98;;;;17708:313;18088:2;18077:9;18073:18;18060:32;18119:18;18111:6;18108:30;18105:117;;;18141:79;;:::i;:::-;18105:117;18254:107;18353:7;18344:6;18333:9;18329:22;18254:107;:::i;:::-;18236:125;;;;18031:340;18410:2;18436:53;18481:7;18472:6;18461:9;18457:22;18436:53;:::i;:::-;18426:63;;18381:118;18538:3;18565:53;18610:7;18601:6;18590:9;18586:22;18565:53;:::i;:::-;18555:63;;18509:119;16980:1655;;;;;;;;;;;:::o;18641:1759::-;18792:6;18800;18808;18816;18824;18832;18840;18889:3;18877:9;18868:7;18864:23;18860:33;18857:120;;;18896:79;;:::i;:::-;18857:120;19016:1;19041:61;19094:7;19085:6;19074:9;19070:22;19041:61;:::i;:::-;19031:71;;18987:125;19151:2;19177:53;19222:7;19213:6;19202:9;19198:22;19177:53;:::i;:::-;19167:63;;19122:118;19279:2;19305:53;19350:7;19341:6;19330:9;19326:22;19305:53;:::i;:::-;19295:63;;19250:118;19407:2;19433:53;19478:7;19469:6;19458:9;19454:22;19433:53;:::i;:::-;19423:63;;19378:118;19563:3;19552:9;19548:19;19535:33;19595:18;19587:6;19584:30;19581:117;;;19617:79;;:::i;:::-;19581:117;19722:63;19777:7;19768:6;19757:9;19753:22;19722:63;:::i;:::-;19712:73;;19506:289;19862:3;19851:9;19847:19;19834:33;19894:18;19886:6;19883:30;19880:117;;;19916:79;;:::i;:::-;19880:117;20021:63;20076:7;20067:6;20056:9;20052:22;20021:63;:::i;:::-;20011:73;;19805:289;20161:3;20150:9;20146:19;20133:33;20193:18;20185:6;20182:30;20179:117;;;20215:79;;:::i;:::-;20179:117;20320:63;20375:7;20366:6;20355:9;20351:22;20320:63;:::i;:::-;20310:73;;20104:289;18641:1759;;;;;;;;;;:::o;20406:118::-;20493:24;20511:5;20493:24;:::i;:::-;20488:3;20481:37;20406:118;;:::o;20530:222::-;20623:4;20661:2;20650:9;20646:18;20638:26;;20674:71;20742:1;20731:9;20727:17;20718:6;20674:71;:::i;:::-;20530:222;;;;:::o;20758:329::-;20817:6;20866:2;20854:9;20845:7;20841:23;20837:32;20834:119;;;20872:79;;:::i;:::-;20834:119;20992:1;21017:53;21062:7;21053:6;21042:9;21038:22;21017:53;:::i;:::-;21007:63;;20963:117;20758:329;;;;:::o;21093:1743::-;21236:6;21244;21252;21260;21268;21276;21284;21333:3;21321:9;21312:7;21308:23;21304:33;21301:120;;;21340:79;;:::i;:::-;21301:120;21460:1;21485:53;21530:7;21521:6;21510:9;21506:22;21485:53;:::i;:::-;21475:63;;21431:117;21587:2;21613:53;21658:7;21649:6;21638:9;21634:22;21613:53;:::i;:::-;21603:63;;21558:118;21715:2;21741:53;21786:7;21777:6;21766:9;21762:22;21741:53;:::i;:::-;21731:63;;21686:118;21871:2;21860:9;21856:18;21843:32;21902:18;21894:6;21891:30;21888:117;;;21924:79;;:::i;:::-;21888:117;22029:63;22084:7;22075:6;22064:9;22060:22;22029:63;:::i;:::-;22019:73;;21814:288;22169:3;22158:9;22154:19;22141:33;22201:18;22193:6;22190:30;22187:117;;;22223:79;;:::i;:::-;22187:117;22328:63;22383:7;22374:6;22363:9;22359:22;22328:63;:::i;:::-;22318:73;;22112:289;22468:3;22457:9;22453:19;22440:33;22500:18;22492:6;22489:30;22486:117;;;22522:79;;:::i;:::-;22486:117;22627:63;22682:7;22673:6;22662:9;22658:22;22627:63;:::i;:::-;22617:73;;22411:289;22739:3;22766:53;22811:7;22802:6;22791:9;22787:22;22766:53;:::i;:::-;22756:63;;22710:119;21093:1743;;;;;;;;;;:::o;22842:1889::-;22994:6;23002;23010;23018;23026;23034;23042;23050;23099:3;23087:9;23078:7;23074:23;23070:33;23067:120;;;23106:79;;:::i;:::-;23067:120;23226:1;23251:53;23296:7;23287:6;23276:9;23272:22;23251:53;:::i;:::-;23241:63;;23197:117;23353:2;23379:53;23424:7;23415:6;23404:9;23400:22;23379:53;:::i;:::-;23369:63;;23324:118;23481:2;23507:53;23552:7;23543:6;23532:9;23528:22;23507:53;:::i;:::-;23497:63;;23452:118;23609:2;23635:53;23680:7;23671:6;23660:9;23656:22;23635:53;:::i;:::-;23625:63;;23580:118;23737:3;23764:53;23809:7;23800:6;23789:9;23785:22;23764:53;:::i;:::-;23754:63;;23708:119;23894:3;23883:9;23879:19;23866:33;23926:18;23918:6;23915:30;23912:117;;;23948:79;;:::i;:::-;23912:117;24053:63;24108:7;24099:6;24088:9;24084:22;24053:63;:::i;:::-;24043:73;;23837:289;24193:3;24182:9;24178:19;24165:33;24225:18;24217:6;24214:30;24211:117;;;24247:79;;:::i;:::-;24211:117;24352:63;24407:7;24398:6;24387:9;24383:22;24352:63;:::i;:::-;24342:73;;24136:289;24492:3;24481:9;24477:19;24464:33;24524:18;24516:6;24513:30;24510:117;;;24546:79;;:::i;:::-;24510:117;24651:63;24706:7;24697:6;24686:9;24682:22;24651:63;:::i;:::-;24641:73;;24435:289;22842:1889;;;;;;;;;;;:::o;24737:1743::-;24880:6;24888;24896;24904;24912;24920;24928;24977:3;24965:9;24956:7;24952:23;24948:33;24945:120;;;24984:79;;:::i;:::-;24945:120;25104:1;25129:53;25174:7;25165:6;25154:9;25150:22;25129:53;:::i;:::-;25119:63;;25075:117;25231:2;25257:53;25302:7;25293:6;25282:9;25278:22;25257:53;:::i;:::-;25247:63;;25202:118;25359:2;25385:53;25430:7;25421:6;25410:9;25406:22;25385:53;:::i;:::-;25375:63;;25330:118;25487:2;25513:53;25558:7;25549:6;25538:9;25534:22;25513:53;:::i;:::-;25503:63;;25458:118;25643:3;25632:9;25628:19;25615:33;25675:18;25667:6;25664:30;25661:117;;;25697:79;;:::i;:::-;25661:117;25802:63;25857:7;25848:6;25837:9;25833:22;25802:63;:::i;:::-;25792:73;;25586:289;25942:3;25931:9;25927:19;25914:33;25974:18;25966:6;25963:30;25960:117;;;25996:79;;:::i;:::-;25960:117;26101:63;26156:7;26147:6;26136:9;26132:22;26101:63;:::i;:::-;26091:73;;25885:289;26241:3;26230:9;26226:19;26213:33;26273:18;26265:6;26262:30;26259:117;;;26295:79;;:::i;:::-;26259:117;26400:63;26455:7;26446:6;26435:9;26431:22;26400:63;:::i;:::-;26390:73;;26184:289;24737:1743;;;;;;;;;;:::o;26486:1349::-;26608:6;26616;26624;26632;26640;26648;26656;26664;26713:3;26701:9;26692:7;26688:23;26684:33;26681:120;;;26720:79;;:::i;:::-;26681:120;26840:1;26865:53;26910:7;26901:6;26890:9;26886:22;26865:53;:::i;:::-;26855:63;;26811:117;26967:2;26993:53;27038:7;27029:6;27018:9;27014:22;26993:53;:::i;:::-;26983:63;;26938:118;27095:2;27121:53;27166:7;27157:6;27146:9;27142:22;27121:53;:::i;:::-;27111:63;;27066:118;27223:2;27249:53;27294:7;27285:6;27274:9;27270:22;27249:53;:::i;:::-;27239:63;;27194:118;27351:3;27378:53;27423:7;27414:6;27403:9;27399:22;27378:53;:::i;:::-;27368:63;;27322:119;27480:3;27507:53;27552:7;27543:6;27532:9;27528:22;27507:53;:::i;:::-;27497:63;;27451:119;27609:3;27636:53;27681:7;27672:6;27661:9;27657:22;27636:53;:::i;:::-;27626:63;;27580:119;27738:3;27765:53;27810:7;27801:6;27790:9;27786:22;27765:53;:::i;:::-;27755:63;;27709:119;26486:1349;;;;;;;;;;;:::o;27841:619::-;27918:6;27926;27934;27983:2;27971:9;27962:7;27958:23;27954:32;27951:119;;;27989:79;;:::i;:::-;27951:119;28109:1;28134:53;28179:7;28170:6;28159:9;28155:22;28134:53;:::i;:::-;28124:63;;28080:117;28236:2;28262:53;28307:7;28298:6;28287:9;28283:22;28262:53;:::i;:::-;28252:63;;28207:118;28364:2;28390:53;28435:7;28426:6;28415:9;28411:22;28390:53;:::i;:::-;28380:63;;28335:118;27841:619;;;;;:::o;28466:311::-;28543:4;28633:18;28625:6;28622:30;28619:56;;;28655:18;;:::i;:::-;28619:56;28705:4;28697:6;28693:17;28685:25;;28765:4;28759;28755:15;28747:23;;28466:311;;;:::o;28800:710::-;28896:5;28921:81;28937:64;28994:6;28937:64;:::i;:::-;28921:81;:::i;:::-;28912:90;;29022:5;29051:6;29044:5;29037:21;29085:4;29078:5;29074:16;29067:23;;29138:4;29130:6;29126:17;29118:6;29114:30;29167:3;29159:6;29156:15;29153:122;;;29186:79;;:::i;:::-;29153:122;29301:6;29284:220;29318:6;29313:3;29310:15;29284:220;;;29393:3;29422:37;29455:3;29443:10;29422:37;:::i;:::-;29417:3;29410:50;29489:4;29484:3;29480:14;29473:21;;29360:144;29344:4;29339:3;29335:14;29328:21;;29284:220;;;29288:21;28902:608;;28800:710;;;;;:::o;29533:370::-;29604:5;29653:3;29646:4;29638:6;29634:17;29630:27;29620:122;;29661:79;;:::i;:::-;29620:122;29778:6;29765:20;29803:94;29893:3;29885:6;29878:4;29870:6;29866:17;29803:94;:::i;:::-;29794:103;;29610:293;29533:370;;;;:::o;29909:2309::-;30111:6;30119;30127;30135;30143;30151;30159;30167;30216:3;30204:9;30195:7;30191:23;30187:33;30184:120;;;30223:79;;:::i;:::-;30184:120;30343:1;30368:53;30413:7;30404:6;30393:9;30389:22;30368:53;:::i;:::-;30358:63;;30314:117;30498:2;30487:9;30483:18;30470:32;30529:18;30521:6;30518:30;30515:117;;;30551:79;;:::i;:::-;30515:117;30656:78;30726:7;30717:6;30706:9;30702:22;30656:78;:::i;:::-;30646:88;;30441:303;30811:2;30800:9;30796:18;30783:32;30842:18;30834:6;30831:30;30828:117;;;30864:79;;:::i;:::-;30828:117;30969:78;31039:7;31030:6;31019:9;31015:22;30969:78;:::i;:::-;30959:88;;30754:303;31096:2;31122:53;31167:7;31158:6;31147:9;31143:22;31122:53;:::i;:::-;31112:63;;31067:118;31224:3;31251:53;31296:7;31287:6;31276:9;31272:22;31251:53;:::i;:::-;31241:63;;31195:119;31381:3;31370:9;31366:19;31353:33;31413:18;31405:6;31402:30;31399:117;;;31435:79;;:::i;:::-;31399:117;31540:63;31595:7;31586:6;31575:9;31571:22;31540:63;:::i;:::-;31530:73;;31324:289;31680:3;31669:9;31665:19;31652:33;31712:18;31704:6;31701:30;31698:117;;;31734:79;;:::i;:::-;31698:117;31839:63;31894:7;31885:6;31874:9;31870:22;31839:63;:::i;:::-;31829:73;;31623:289;31979:3;31968:9;31964:19;31951:33;32011:18;32003:6;32000:30;31997:117;;;32033:79;;:::i;:::-;31997:117;32138:63;32193:7;32184:6;32173:9;32169:22;32138:63;:::i;:::-;32128:73;;31922:289;29909:2309;;;;;;;;;;;:::o;32241:568::-;32314:8;32324:6;32374:3;32367:4;32359:6;32355:17;32351:27;32341:122;;32382:79;;:::i;:::-;32341:122;32495:6;32482:20;32472:30;;32525:18;32517:6;32514:30;32511:117;;;32547:79;;:::i;:::-;32511:117;32661:4;32653:6;32649:17;32637:29;;32715:3;32707:4;32699:6;32695:17;32685:8;32681:32;32678:41;32675:128;;;32722:79;;:::i;:::-;32675:128;32241:568;;;;;:::o;32815:1601::-;32991:6;32999;33007;33015;33023;33031;33039;33047;33096:3;33084:9;33075:7;33071:23;33067:33;33064:120;;;33103:79;;:::i;:::-;33064:120;33251:1;33240:9;33236:17;33223:31;33281:18;33273:6;33270:30;33267:117;;;33303:79;;:::i;:::-;33267:117;33416:80;33488:7;33479:6;33468:9;33464:22;33416:80;:::i;:::-;33398:98;;;;33194:312;33573:2;33562:9;33558:18;33545:32;33604:18;33596:6;33593:30;33590:117;;;33626:79;;:::i;:::-;33590:117;33739:80;33811:7;33802:6;33791:9;33787:22;33739:80;:::i;:::-;33721:98;;;;33516:313;33896:2;33885:9;33881:18;33868:32;33927:18;33919:6;33916:30;33913:117;;;33949:79;;:::i;:::-;33913:117;34062:80;34134:7;34125:6;34114:9;34110:22;34062:80;:::i;:::-;34044:98;;;;33839:313;34191:2;34217:53;34262:7;34253:6;34242:9;34238:22;34217:53;:::i;:::-;34207:63;;34162:118;34319:3;34346:53;34391:7;34382:6;34371:9;34367:22;34346:53;:::i;:::-;34336:63;;34290:119;32815:1601;;;;;;;;;;;:::o;34422:169::-;34506:11;34540:6;34535:3;34528:19;34580:4;34575:3;34571:14;34556:29;;34422:169;;;;:::o;34597:159::-;34737:11;34733:1;34725:6;34721:14;34714:35;34597:159;:::o;34762:365::-;34904:3;34925:66;34989:1;34984:3;34925:66;:::i;:::-;34918:73;;35000:93;35089:3;35000:93;:::i;:::-;35118:2;35113:3;35109:12;35102:19;;34762:365;;;:::o;35133:419::-;35299:4;35337:2;35326:9;35322:18;35314:26;;35386:9;35380:4;35376:20;35372:1;35361:9;35357:17;35350:47;35414:131;35540:4;35414:131;:::i;:::-;35406:139;;35133:419;;;:::o;35558:171::-;35698:23;35694:1;35686:6;35682:14;35675:47;35558:171;:::o;35735:366::-;35877:3;35898:67;35962:2;35957:3;35898:67;:::i;:::-;35891:74;;35974:93;36063:3;35974:93;:::i;:::-;36092:2;36087:3;36083:12;36076:19;;35735:366;;;:::o;36107:419::-;36273:4;36311:2;36300:9;36296:18;36288:26;;36360:9;36354:4;36350:20;36346:1;36335:9;36331:17;36324:47;36388:131;36514:4;36388:131;:::i;:::-;36380:139;;36107:419;;;:::o;36532:180::-;36580:77;36577:1;36570:88;36677:4;36674:1;36667:15;36701:4;36698:1;36691:15;36718:118;36805:24;36823:5;36805:24;:::i;:::-;36800:3;36793:37;36718:118;;:::o;36842:99::-;36894:6;36928:5;36922:12;36912:22;;36842:99;;;:::o;36947:246::-;37028:1;37038:113;37052:6;37049:1;37046:13;37038:113;;;37137:1;37132:3;37128:11;37122:18;37118:1;37113:3;37109:11;37102:39;37074:2;37071:1;37067:10;37062:15;;37038:113;;;37185:1;37176:6;37171:3;37167:16;37160:27;37009:184;36947:246;;;:::o;37199:377::-;37287:3;37315:39;37348:5;37315:39;:::i;:::-;37370:71;37434:6;37429:3;37370:71;:::i;:::-;37363:78;;37450:65;37508:6;37503:3;37496:4;37489:5;37485:16;37450:65;:::i;:::-;37540:29;37562:6;37540:29;:::i;:::-;37535:3;37531:39;37524:46;;37291:285;37199:377;;;;:::o;37582:1048::-;37875:4;37913:3;37902:9;37898:19;37890:27;;37927:71;37995:1;37984:9;37980:17;37971:6;37927:71;:::i;:::-;38008:72;38076:2;38065:9;38061:18;38052:6;38008:72;:::i;:::-;38090;38158:2;38147:9;38143:18;38134:6;38090:72;:::i;:::-;38209:9;38203:4;38199:20;38194:2;38183:9;38179:18;38172:48;38237:78;38310:4;38301:6;38237:78;:::i;:::-;38229:86;;38363:9;38357:4;38353:20;38347:3;38336:9;38332:19;38325:49;38391:78;38464:4;38455:6;38391:78;:::i;:::-;38383:86;;38517:9;38511:4;38507:20;38501:3;38490:9;38486:19;38479:49;38545:78;38618:4;38609:6;38545:78;:::i;:::-;38537:86;;37582:1048;;;;;;;;;:::o;38636:442::-;38785:4;38823:2;38812:9;38808:18;38800:26;;38836:71;38904:1;38893:9;38889:17;38880:6;38836:71;:::i;:::-;38917:72;38985:2;38974:9;38970:18;38961:6;38917:72;:::i;:::-;38999;39067:2;39056:9;39052:18;39043:6;38999:72;:::i;:::-;38636:442;;;;;;:::o;39084:116::-;39154:21;39169:5;39154:21;:::i;:::-;39147:5;39144:32;39134:60;;39190:1;39187;39180:12;39134:60;39084:116;:::o;39206:137::-;39260:5;39291:6;39285:13;39276:22;;39307:30;39331:5;39307:30;:::i;:::-;39206:137;;;;:::o;39349:345::-;39416:6;39465:2;39453:9;39444:7;39440:23;39436:32;39433:119;;;39471:79;;:::i;:::-;39433:119;39591:1;39616:61;39669:7;39660:6;39649:9;39645:22;39616:61;:::i;:::-;39606:71;;39562:125;39349:345;;;;:::o;39700:332::-;39821:4;39859:2;39848:9;39844:18;39836:26;;39872:71;39940:1;39929:9;39925:17;39916:6;39872:71;:::i;:::-;39953:72;40021:2;40010:9;40006:18;39997:6;39953:72;:::i;:::-;39700:332;;;;;:::o;40038:222::-;40131:4;40169:2;40158:9;40154:18;40146:26;;40182:71;40250:1;40239:9;40235:17;40226:6;40182:71;:::i;:::-;40038:222;;;;:::o;40266:::-;40406:34;40402:1;40394:6;40390:14;40383:58;40475:5;40470:2;40462:6;40458:15;40451:30;40266:222;:::o;40494:366::-;40636:3;40657:67;40721:2;40716:3;40657:67;:::i;:::-;40650:74;;40733:93;40822:3;40733:93;:::i;:::-;40851:2;40846:3;40842:12;40835:19;;40494:366;;;:::o;40866:419::-;41032:4;41070:2;41059:9;41055:18;41047:26;;41119:9;41113:4;41109:20;41105:1;41094:9;41090:17;41083:47;41147:131;41273:4;41147:131;:::i;:::-;41139:139;;40866:419;;;:::o;41291:180::-;41339:77;41336:1;41329:88;41436:4;41433:1;41426:15;41460:4;41457:1;41450:15;41477:191;41517:3;41536:20;41554:1;41536:20;:::i;:::-;41531:25;;41570:20;41588:1;41570:20;:::i;:::-;41565:25;;41613:1;41610;41606:9;41599:16;;41634:3;41631:1;41628:10;41625:36;;;41641:18;;:::i;:::-;41625:36;41477:191;;;;:::o;41674:85::-;41719:7;41748:5;41737:16;;41674:85;;;:::o;41765:60::-;41793:3;41814:5;41807:12;;41765:60;;;:::o;41831:158::-;41889:9;41922:61;41940:42;41949:32;41975:5;41949:32;:::i;:::-;41940:42;:::i;:::-;41922:61;:::i;:::-;41909:74;;41831:158;;;:::o;41995:147::-;42090:45;42129:5;42090:45;:::i;:::-;42085:3;42078:58;41995:147;;:::o;42148:114::-;42215:6;42249:5;42243:12;42233:22;;42148:114;;;:::o;42268:184::-;42367:11;42401:6;42396:3;42389:19;42441:4;42436:3;42432:14;42417:29;;42268:184;;;;:::o;42458:132::-;42525:4;42548:3;42540:11;;42578:4;42573:3;42569:14;42561:22;;42458:132;;;:::o;42596:108::-;42673:24;42691:5;42673:24;:::i;:::-;42668:3;42661:37;42596:108;;:::o;42710:179::-;42779:10;42800:46;42842:3;42834:6;42800:46;:::i;:::-;42878:4;42873:3;42869:14;42855:28;;42710:179;;;;:::o;42895:113::-;42965:4;42997;42992:3;42988:14;42980:22;;42895:113;;;:::o;43044:732::-;43163:3;43192:54;43240:5;43192:54;:::i;:::-;43262:86;43341:6;43336:3;43262:86;:::i;:::-;43255:93;;43372:56;43422:5;43372:56;:::i;:::-;43451:7;43482:1;43467:284;43492:6;43489:1;43486:13;43467:284;;;43568:6;43562:13;43595:63;43654:3;43639:13;43595:63;:::i;:::-;43588:70;;43681:60;43734:6;43681:60;:::i;:::-;43671:70;;43527:224;43514:1;43511;43507:9;43502:14;;43467:284;;;43471:14;43767:3;43760:10;;43168:608;;;43044:732;;;;:::o;43782:831::-;44045:4;44083:3;44072:9;44068:19;44060:27;;44097:71;44165:1;44154:9;44150:17;44141:6;44097:71;:::i;:::-;44178:80;44254:2;44243:9;44239:18;44230:6;44178:80;:::i;:::-;44305:9;44299:4;44295:20;44290:2;44279:9;44275:18;44268:48;44333:108;44436:4;44427:6;44333:108;:::i;:::-;44325:116;;44451:72;44519:2;44508:9;44504:18;44495:6;44451:72;:::i;:::-;44533:73;44601:3;44590:9;44586:19;44577:6;44533:73;:::i;:::-;43782:831;;;;;;;;:::o;44619:143::-;44676:5;44707:6;44701:13;44692:22;;44723:33;44750:5;44723:33;:::i;:::-;44619:143;;;;:::o;44785:732::-;44892:5;44917:81;44933:64;44990:6;44933:64;:::i;:::-;44917:81;:::i;:::-;44908:90;;45018:5;45047:6;45040:5;45033:21;45081:4;45074:5;45070:16;45063:23;;45134:4;45126:6;45122:17;45114:6;45110:30;45163:3;45155:6;45152:15;45149:122;;;45182:79;;:::i;:::-;45149:122;45297:6;45280:231;45314:6;45309:3;45306:15;45280:231;;;45389:3;45418:48;45462:3;45450:10;45418:48;:::i;:::-;45413:3;45406:61;45496:4;45491:3;45487:14;45480:21;;45356:155;45340:4;45335:3;45331:14;45324:21;;45280:231;;;45284:21;44898:619;;44785:732;;;;;:::o;45540:385::-;45622:5;45671:3;45664:4;45656:6;45652:17;45648:27;45638:122;;45679:79;;:::i;:::-;45638:122;45789:6;45783:13;45814:105;45915:3;45907:6;45900:4;45892:6;45888:17;45814:105;:::i;:::-;45805:114;;45628:297;45540:385;;;;:::o;45931:554::-;46026:6;46075:2;46063:9;46054:7;46050:23;46046:32;46043:119;;;46081:79;;:::i;:::-;46043:119;46222:1;46211:9;46207:17;46201:24;46252:18;46244:6;46241:30;46238:117;;;46274:79;;:::i;:::-;46238:117;46379:89;46460:7;46451:6;46440:9;46436:22;46379:89;:::i;:::-;46369:99;;46172:306;45931:554;;;;:::o;46491:866::-;46744:4;46782:3;46771:9;46767:19;46759:27;;46796:71;46864:1;46853:9;46849:17;46840:6;46796:71;:::i;:::-;46877:72;46945:2;46934:9;46930:18;46921:6;46877:72;:::i;:::-;46959;47027:2;47016:9;47012:18;47003:6;46959:72;:::i;:::-;47041;47109:2;47098:9;47094:18;47085:6;47041:72;:::i;:::-;47123:73;47191:3;47180:9;47176:19;47167:6;47123:73;:::i;:::-;47244:9;47238:4;47234:20;47228:3;47217:9;47213:19;47206:49;47272:78;47345:4;47336:6;47272:78;:::i;:::-;47264:86;;46491:866;;;;;;;;;:::o;47363:826::-;47600:4;47638:3;47627:9;47623:19;47615:27;;47652:71;47720:1;47709:9;47705:17;47696:6;47652:71;:::i;:::-;47770:9;47764:4;47760:20;47755:2;47744:9;47740:18;47733:48;47798:78;47871:4;47862:6;47798:78;:::i;:::-;47790:86;;47923:9;47917:4;47913:20;47908:2;47897:9;47893:18;47886:48;47951:78;48024:4;48015:6;47951:78;:::i;:::-;47943:86;;48076:9;48070:4;48066:20;48061:2;48050:9;48046:18;48039:48;48104:78;48177:4;48168:6;48104:78;:::i;:::-;48096:86;;47363:826;;;;;;;:::o;48195:98::-;48246:6;48280:5;48274:12;48264:22;;48195:98;;;:::o;48299:147::-;48400:11;48437:3;48422:18;;48299:147;;;;:::o;48452:386::-;48556:3;48584:38;48616:5;48584:38;:::i;:::-;48638:88;48719:6;48714:3;48638:88;:::i;:::-;48631:95;;48735:65;48793:6;48788:3;48781:4;48774:5;48770:16;48735:65;:::i;:::-;48825:6;48820:3;48816:16;48809:23;;48560:278;48452:386;;;;:::o;48844:271::-;48974:3;48996:93;49085:3;49076:6;48996:93;:::i;:::-;48989:100;;49106:3;49099:10;;48844:271;;;;:::o;49121:866::-;49374:4;49412:3;49401:9;49397:19;49389:27;;49426:71;49494:1;49483:9;49479:17;49470:6;49426:71;:::i;:::-;49507:72;49575:2;49564:9;49560:18;49551:6;49507:72;:::i;:::-;49589;49657:2;49646:9;49642:18;49633:6;49589:72;:::i;:::-;49671;49739:2;49728:9;49724:18;49715:6;49671:72;:::i;:::-;49753:73;49821:3;49810:9;49806:19;49797:6;49753:73;:::i;:::-;49874:9;49868:4;49864:20;49858:3;49847:9;49843:19;49836:49;49902:78;49975:4;49966:6;49902:78;:::i;:::-;49894:86;;49121:866;;;;;;;;;:::o;49993:159::-;50133:11;50129:1;50121:6;50117:14;50110:35;49993:159;:::o;50158:365::-;50300:3;50321:66;50385:1;50380:3;50321:66;:::i;:::-;50314:73;;50396:93;50485:3;50396:93;:::i;:::-;50514:2;50509:3;50505:12;50498:19;;50158:365;;;:::o;50529:419::-;50695:4;50733:2;50722:9;50718:18;50710:26;;50782:9;50776:4;50772:20;50768:1;50757:9;50753:17;50746:47;50810:131;50936:4;50810:131;:::i;:::-;50802:139;;50529:419;;;:::o;50954:163::-;51094:15;51090:1;51082:6;51078:14;51071:39;50954:163;:::o;51123:366::-;51265:3;51286:67;51350:2;51345:3;51286:67;:::i;:::-;51279:74;;51362:93;51451:3;51362:93;:::i;:::-;51480:2;51475:3;51471:12;51464:19;;51123:366;;;:::o;51495:419::-;51661:4;51699:2;51688:9;51684:18;51676:26;;51748:9;51742:4;51738:20;51734:1;51723:9;51719:17;51712:47;51776:131;51902:4;51776:131;:::i;:::-;51768:139;;51495:419;;;:::o;51920:117::-;52029:1;52026;52019:12;52043:117;52152:1;52149;52142:12;52166:117;52275:1;52272;52265:12;52289:740;52382:4;52388:6;52444:11;52431:25;52544:1;52538:4;52534:12;52523:8;52507:14;52503:29;52499:48;52479:18;52475:73;52465:168;;52552:79;;:::i;:::-;52465:168;52664:18;52654:8;52650:33;52642:41;;52716:4;52703:18;52693:28;;52744:18;52736:6;52733:30;52730:117;;;52766:79;;:::i;:::-;52730:117;52874:2;52868:4;52864:13;52856:21;;52931:4;52923:6;52919:17;52903:14;52899:38;52893:4;52889:49;52886:136;;;52941:79;;:::i;:::-;52886:136;52395:634;52289:740;;;;;:::o;53035:166::-;53175:18;53171:1;53163:6;53159:14;53152:42;53035:166;:::o;53207:366::-;53349:3;53370:67;53434:2;53429:3;53370:67;:::i;:::-;53363:74;;53446:93;53535:3;53446:93;:::i;:::-;53564:2;53559:3;53555:12;53548:19;;53207:366;;;:::o;53579:419::-;53745:4;53783:2;53772:9;53768:18;53760:26;;53832:9;53826:4;53822:20;53818:1;53807:9;53803:17;53796:47;53860:131;53986:4;53860:131;:::i;:::-;53852:139;;53579:419;;;:::o;54004:165::-;54144:17;54140:1;54132:6;54128:14;54121:41;54004:165;:::o;54175:366::-;54317:3;54338:67;54402:2;54397:3;54338:67;:::i;:::-;54331:74;;54414:93;54503:3;54414:93;:::i;:::-;54532:2;54527:3;54523:12;54516:19;;54175:366;;;:::o;54547:419::-;54713:4;54751:2;54740:9;54736:18;54728:26;;54800:9;54794:4;54790:20;54786:1;54775:9;54771:17;54764:47;54828:131;54954:4;54828:131;:::i;:::-;54820:139;;54547:419;;;:::o;54972:114::-;;:::o;55092:364::-;55234:3;55255:66;55319:1;55314:3;55255:66;:::i;:::-;55248:73;;55330:93;55419:3;55330:93;:::i;:::-;55448:1;55443:3;55439:11;55432:18;;55092:364;;;:::o;55462:1366::-;55914:4;55952:3;55941:9;55937:19;55929:27;;55966:71;56034:1;56023:9;56019:17;56010:6;55966:71;:::i;:::-;56047:72;56115:2;56104:9;56100:18;56091:6;56047:72;:::i;:::-;56129;56197:2;56186:9;56182:18;56173:6;56129:72;:::i;:::-;56248:9;56242:4;56238:20;56233:2;56222:9;56218:18;56211:48;56276:131;56402:4;56276:131;:::i;:::-;56268:139;;56455:9;56449:4;56445:20;56439:3;56428:9;56424:19;56417:49;56483:131;56609:4;56483:131;:::i;:::-;56475:139;;56662:9;56656:4;56652:20;56646:3;56635:9;56631:19;56624:49;56690:131;56816:4;56690:131;:::i;:::-;56682:139;;55462:1366;;;;;;:::o;56834:159::-;56974:11;56970:1;56962:6;56958:14;56951:35;56834:159;:::o;56999:365::-;57141:3;57162:66;57226:1;57221:3;57162:66;:::i;:::-;57155:73;;57237:93;57326:3;57237:93;:::i;:::-;57355:2;57350:3;57346:12;57339:19;;56999:365;;;:::o;57370:419::-;57536:4;57574:2;57563:9;57559:18;57551:26;;57623:9;57617:4;57613:20;57609:1;57598:9;57594:17;57587:47;57651:131;57777:4;57651:131;:::i;:::-;57643:139;;57370:419;;;:::o;57795:163::-;57935:15;57931:1;57923:6;57919:14;57912:39;57795:163;:::o;57964:366::-;58106:3;58127:67;58191:2;58186:3;58127:67;:::i;:::-;58120:74;;58203:93;58292:3;58203:93;:::i;:::-;58321:2;58316:3;58312:12;58305:19;;57964:366;;;:::o;58336:419::-;58502:4;58540:2;58529:9;58525:18;58517:26;;58589:9;58583:4;58579:20;58575:1;58564:9;58560:17;58553:47;58617:131;58743:4;58617:131;:::i;:::-;58609:139;;58336:419;;;:::o;58761:1159::-;59082:4;59120:3;59109:9;59105:19;59097:27;;59134:71;59202:1;59191:9;59187:17;59178:6;59134:71;:::i;:::-;59215:72;59283:2;59272:9;59268:18;59259:6;59215:72;:::i;:::-;59297;59365:2;59354:9;59350:18;59341:6;59297:72;:::i;:::-;59379;59447:2;59436:9;59432:18;59423:6;59379:72;:::i;:::-;59499:9;59493:4;59489:20;59483:3;59472:9;59468:19;59461:49;59527:78;59600:4;59591:6;59527:78;:::i;:::-;59519:86;;59653:9;59647:4;59643:20;59637:3;59626:9;59622:19;59615:49;59681:78;59754:4;59745:6;59681:78;:::i;:::-;59673:86;;59807:9;59801:4;59797:20;59791:3;59780:9;59776:19;59769:49;59835:78;59908:4;59899:6;59835:78;:::i;:::-;59827:86;;58761:1159;;;;;;;;;;:::o;59926:::-;60247:4;60285:3;60274:9;60270:19;60262:27;;60299:71;60367:1;60356:9;60352:17;60343:6;60299:71;:::i;:::-;60380:72;60448:2;60437:9;60433:18;60424:6;60380:72;:::i;:::-;60462;60530:2;60519:9;60515:18;60506:6;60462:72;:::i;:::-;60544;60612:2;60601:9;60597:18;60588:6;60544:72;:::i;:::-;60664:9;60658:4;60654:20;60648:3;60637:9;60633:19;60626:49;60692:78;60765:4;60756:6;60692:78;:::i;:::-;60684:86;;60818:9;60812:4;60808:20;60802:3;60791:9;60787:19;60780:49;60846:78;60919:4;60910:6;60846:78;:::i;:::-;60838:86;;60972:9;60966:4;60962:20;60956:3;60945:9;60941:19;60934:49;61000:78;61073:4;61064:6;61000:78;:::i;:::-;60992:86;;59926:1159;;;;;;;;;;:::o;61091:168::-;61231:20;61227:1;61219:6;61215:14;61208:44;61091:168;:::o;61265:366::-;61407:3;61428:67;61492:2;61487:3;61428:67;:::i;:::-;61421:74;;61504:93;61593:3;61504:93;:::i;:::-;61622:2;61617:3;61613:12;61606:19;;61265:366;;;:::o;61637:419::-;61803:4;61841:2;61830:9;61826:18;61818:26;;61890:9;61884:4;61880:20;61876:1;61865:9;61861:17;61854:47;61918:131;62044:4;61918:131;:::i;:::-;61910:139;;61637:419;;;:::o;62062:167::-;62202:19;62198:1;62190:6;62186:14;62179:43;62062:167;:::o;62235:366::-;62377:3;62398:67;62462:2;62457:3;62398:67;:::i;:::-;62391:74;;62474:93;62563:3;62474:93;:::i;:::-;62592:2;62587:3;62583:12;62576:19;;62235:366;;;:::o;62607:419::-;62773:4;62811:2;62800:9;62796:18;62788:26;;62860:9;62854:4;62850:20;62846:1;62835:9;62831:17;62824:47;62888:131;63014:4;62888:131;:::i;:::-;62880:139;;62607:419;;;:::o;63032:170::-;63172:22;63168:1;63160:6;63156:14;63149:46;63032:170;:::o;63208:366::-;63350:3;63371:67;63435:2;63430:3;63371:67;:::i;:::-;63364:74;;63447:93;63536:3;63447:93;:::i;:::-;63565:2;63560:3;63556:12;63549:19;;63208:366;;;:::o;63580:419::-;63746:4;63784:2;63773:9;63769:18;63761:26;;63833:9;63827:4;63823:20;63819:1;63808:9;63804:17;63797:47;63861:131;63987:4;63861:131;:::i;:::-;63853:139;;63580:419;;;:::o;64005:332::-;64126:4;64164:2;64153:9;64149:18;64141:26;;64177:71;64245:1;64234:9;64230:17;64221:6;64177:71;:::i;:::-;64258:72;64326:2;64315:9;64311:18;64302:6;64258:72;:::i;:::-;64005:332;;;;;:::o;64343:351::-;64413:6;64462:2;64450:9;64441:7;64437:23;64433:32;64430:119;;;64468:79;;:::i;:::-;64430:119;64588:1;64613:64;64669:7;64660:6;64649:9;64645:22;64613:64;:::i;:::-;64603:74;;64559:128;64343:351;;;;:::o;64700:176::-;64840:28;64836:1;64828:6;64824:14;64817:52;64700:176;:::o;64882:366::-;65024:3;65045:67;65109:2;65104:3;65045:67;:::i;:::-;65038:74;;65121:93;65210:3;65121:93;:::i;:::-;65239:2;65234:3;65230:12;65223:19;;64882:366;;;:::o;65254:419::-;65420:4;65458:2;65447:9;65443:18;65435:26;;65507:9;65501:4;65497:20;65493:1;65482:9;65478:17;65471:47;65535:131;65661:4;65535:131;:::i;:::-;65527:139;;65254:419;;;:::o;65679:174::-;65819:26;65815:1;65807:6;65803:14;65796:50;65679:174;:::o;65859:366::-;66001:3;66022:67;66086:2;66081:3;66022:67;:::i;:::-;66015:74;;66098:93;66187:3;66098:93;:::i;:::-;66216:2;66211:3;66207:12;66200:19;;65859:366;;;:::o;66231:419::-;66397:4;66435:2;66424:9;66420:18;66412:26;;66484:9;66478:4;66474:20;66470:1;66459:9;66455:17;66448:47;66512:131;66638:4;66512:131;:::i;:::-;66504:139;;66231:419;;;:::o;66656:166::-;66796:18;66792:1;66784:6;66780:14;66773:42;66656:166;:::o;66828:366::-;66970:3;66991:67;67055:2;67050:3;66991:67;:::i;:::-;66984:74;;67067:93;67156:3;67067:93;:::i;:::-;67185:2;67180:3;67176:12;67169:19;;66828:366;;;:::o;67200:419::-;67366:4;67404:2;67393:9;67389:18;67381:26;;67453:9;67447:4;67443:20;67439:1;67428:9;67424:17;67417:47;67481:131;67607:4;67481:131;:::i;:::-;67473:139;;67200:419;;;:::o;67625:169::-;67765:21;67761:1;67753:6;67749:14;67742:45;67625:169;:::o;67800:366::-;67942:3;67963:67;68027:2;68022:3;67963:67;:::i;:::-;67956:74;;68039:93;68128:3;68039:93;:::i;:::-;68157:2;68152:3;68148:12;68141:19;;67800:366;;;:::o;68172:419::-;68338:4;68376:2;68365:9;68361:18;68353:26;;68425:9;68419:4;68415:20;68411:1;68400:9;68396:17;68389:47;68453:131;68579:4;68453:131;:::i;:::-;68445:139;;68172:419;;;:::o;68597:175::-;68737:27;68733:1;68725:6;68721:14;68714:51;68597:175;:::o;68778:366::-;68920:3;68941:67;69005:2;69000:3;68941:67;:::i;:::-;68934:74;;69017:93;69106:3;69017:93;:::i;:::-;69135:2;69130:3;69126:12;69119:19;;68778:366;;;:::o;69150:419::-;69316:4;69354:2;69343:9;69339:18;69331:26;;69403:9;69397:4;69393:20;69389:1;69378:9;69374:17;69367:47;69431:131;69557:4;69431:131;:::i;:::-;69423:139;;69150:419;;;:::o;69575:173::-;69715:25;69711:1;69703:6;69699:14;69692:49;69575:173;:::o;69754:366::-;69896:3;69917:67;69981:2;69976:3;69917:67;:::i;:::-;69910:74;;69993:93;70082:3;69993:93;:::i;:::-;70111:2;70106:3;70102:12;70095:19;;69754:366;;;:::o;70126:419::-;70292:4;70330:2;70319:9;70315:18;70307:26;;70379:9;70373:4;70369:20;70365:1;70354:9;70350:17;70343:47;70407:131;70533:4;70407:131;:::i;:::-;70399:139;;70126:419;;;:::o;70551:178::-;70691:30;70687:1;70679:6;70675:14;70668:54;70551:178;:::o;70735:366::-;70877:3;70898:67;70962:2;70957:3;70898:67;:::i;:::-;70891:74;;70974:93;71063:3;70974:93;:::i;:::-;71092:2;71087:3;71083:12;71076:19;;70735:366;;;:::o;71107:419::-;71273:4;71311:2;71300:9;71296:18;71288:26;;71360:9;71354:4;71350:20;71346:1;71335:9;71331:17;71324:47;71388:131;71514:4;71388:131;:::i;:::-;71380:139;;71107:419;;;:::o;71532:775::-;71765:4;71803:3;71792:9;71788:19;71780:27;;71817:71;71885:1;71874:9;71870:17;71861:6;71817:71;:::i;:::-;71898:72;71966:2;71955:9;71951:18;71942:6;71898:72;:::i;:::-;71980;72048:2;72037:9;72033:18;72024:6;71980:72;:::i;:::-;72062;72130:2;72119:9;72115:18;72106:6;72062:72;:::i;:::-;72144:73;72212:3;72201:9;72197:19;72188:6;72144:73;:::i;:::-;72227;72295:3;72284:9;72280:19;72271:6;72227:73;:::i;:::-;71532:775;;;;;;;;;:::o;72313:181::-;72453:33;72449:1;72441:6;72437:14;72430:57;72313:181;:::o;72500:366::-;72642:3;72663:67;72727:2;72722:3;72663:67;:::i;:::-;72656:74;;72739:93;72828:3;72739:93;:::i;:::-;72857:2;72852:3;72848:12;72841:19;;72500:366;;;:::o;72872:419::-;73038:4;73076:2;73065:9;73061:18;73053:26;;73125:9;73119:4;73115:20;73111:1;73100:9;73096:17;73089:47;73153:131;73279:4;73153:131;:::i;:::-;73145:139;;72872:419;;;:::o;73297:220::-;73437:34;73433:1;73425:6;73421:14;73414:58;73506:3;73501:2;73493:6;73489:15;73482:28;73297:220;:::o;73523:366::-;73665:3;73686:67;73750:2;73745:3;73686:67;:::i;:::-;73679:74;;73762:93;73851:3;73762:93;:::i;:::-;73880:2;73875:3;73871:12;73864:19;;73523:366;;;:::o;73895:419::-;74061:4;74099:2;74088:9;74084:18;74076:26;;74148:9;74142:4;74138:20;74134:1;74123:9;74119:17;74112:47;74176:131;74302:4;74176:131;:::i;:::-;74168:139;;73895:419;;;:::o;74320:170::-;74460:22;74456:1;74448:6;74444:14;74437:46;74320:170;:::o;74496:366::-;74638:3;74659:67;74723:2;74718:3;74659:67;:::i;:::-;74652:74;;74735:93;74824:3;74735:93;:::i;:::-;74853:2;74848:3;74844:12;74837:19;;74496:366;;;:::o;74868:419::-;75034:4;75072:2;75061:9;75057:18;75049:26;;75121:9;75115:4;75111:20;75107:1;75096:9;75092:17;75085:47;75149:131;75275:4;75149:131;:::i;:::-;75141:139;;74868:419;;;:::o;75293:148::-;75395:11;75432:3;75417:18;;75293:148;;;;:::o;75447:220::-;75587:34;75583:1;75575:6;75571:14;75564:58;75656:3;75651:2;75643:6;75639:15;75632:28;75447:220;:::o;75673:402::-;75833:3;75854:85;75936:2;75931:3;75854:85;:::i;:::-;75847:92;;75948:93;76037:3;75948:93;:::i;:::-;76066:2;76061:3;76057:12;76050:19;;75673:402;;;:::o;76081:390::-;76187:3;76215:39;76248:5;76215:39;:::i;:::-;76270:89;76352:6;76347:3;76270:89;:::i;:::-;76263:96;;76368:65;76426:6;76421:3;76414:4;76407:5;76403:16;76368:65;:::i;:::-;76458:6;76453:3;76449:16;76442:23;;76191:280;76081:390;;;;:::o;76477:541::-;76710:3;76732:148;76876:3;76732:148;:::i;:::-;76725:155;;76897:95;76988:3;76979:6;76897:95;:::i;:::-;76890:102;;77009:3;77002:10;;76477:541;;;;:::o;77024:313::-;77137:4;77175:2;77164:9;77160:18;77152:26;;77224:9;77218:4;77214:20;77210:1;77199:9;77195:17;77188:47;77252:78;77325:4;77316:6;77252:78;:::i;:::-;77244:86;;77024:313;;;;:::o;77343:102::-;77412:4;77435:3;77427:11;;77343:102;;;:::o;77451:122::-;77503:5;77528:39;77563:2;77558:3;77554:12;77549:3;77528:39;:::i;:::-;77519:48;;77451:122;;;;:::o;77579:115::-;77651:4;77683;77678:3;77674:14;77666:22;;77579:115;;;:::o;77730:699::-;77859:3;77882:86;77961:6;77956:3;77882:86;:::i;:::-;77875:93;;77992:58;78044:5;77992:58;:::i;:::-;78073:7;78104:1;78089:315;78114:6;78111:1;78108:13;78089:315;;;78184:42;78219:6;78210:7;78184:42;:::i;:::-;78246:63;78305:3;78290:13;78246:63;:::i;:::-;78239:70;;78332:62;78387:6;78332:62;:::i;:::-;78322:72;;78149:255;78136:1;78133;78129:9;78124:14;;78089:315;;;78093:14;78420:3;78413:10;;77864:565;;77730:699;;;;;:::o;78435:184::-;78534:11;78568:6;78563:3;78556:19;78608:4;78603:3;78599:14;78584:29;;78435:184;;;;:::o;78625:117::-;78734:1;78731;78724:12;78748:98;78832:6;78827:3;78822;78809:30;78748:98;;;:::o;78882:537::-;79010:3;79031:86;79110:6;79105:3;79031:86;:::i;:::-;79024:93;;79141:66;79133:6;79130:78;79127:165;;;79211:79;;:::i;:::-;79127:165;79323:4;79315:6;79311:17;79301:27;;79338:43;79374:6;79369:3;79362:5;79338:43;:::i;:::-;79406:6;79401:3;79397:16;79390:23;;78882:537;;;;;:::o;79425:1177::-;79810:4;79848:3;79837:9;79833:19;79825:27;;79898:9;79892:4;79888:20;79884:1;79873:9;79869:17;79862:47;79926:118;80039:4;80030:6;80022;79926:118;:::i;:::-;79918:126;;80091:9;80085:4;80081:20;80076:2;80065:9;80061:18;80054:48;80119:118;80232:4;80223:6;80215;80119:118;:::i;:::-;80111:126;;80284:9;80278:4;80274:20;80269:2;80258:9;80254:18;80247:48;80312:118;80425:4;80416:6;80408;80312:118;:::i;:::-;80304:126;;80440:72;80508:2;80497:9;80493:18;80484:6;80440:72;:::i;:::-;80522:73;80590:3;80579:9;80575:19;80566:6;80522:73;:::i;:::-;79425:1177;;;;;;;;;;;:::o;80608:106::-;80652:8;80701:5;80696:3;80692:15;80671:36;;80608:106;;;:::o;80720:183::-;80755:3;80793:1;80775:16;80772:23;80769:128;;;80831:1;80828;80825;80810:23;80853:34;80884:1;80878:8;80853:34;:::i;:::-;80846:41;;80769:128;80720:183;:::o;80909:711::-;80948:3;80986:4;80968:16;80965:26;80994:5;80962:39;81023:20;;:::i;:::-;81098:1;81080:16;81076:24;81073:1;81067:4;81052:49;81131:4;81125:11;81230:16;81223:4;81215:6;81211:17;81208:39;81175:18;81167:6;81164:30;81148:113;81145:146;;;81276:5;;;;81145:146;81322:6;81316:4;81312:17;81358:3;81352:10;81385:18;81377:6;81374:30;81371:43;;;81407:5;;;;;;81371:43;81455:6;81448:4;81443:3;81439:14;81435:27;81514:1;81496:16;81492:24;81486:4;81482:35;81477:3;81474:44;81471:57;;;81521:5;;;;;;;81471:57;81538;81586:6;81580:4;81576:17;81568:6;81564:30;81558:4;81538:57;:::i;:::-;81611:3;81604:10;;80952:668;;;;;80909:711;;:::o;81626:233::-;81665:3;81688:24;81706:5;81688:24;:::i;:::-;81679:33;;81734:66;81727:5;81724:77;81721:103;;81804:18;;:::i;:::-;81721:103;81851:1;81844:5;81840:13;81833:20;;81626:233;;;:::o;81865:180::-;81913:77;81910:1;81903:88;82010:4;82007:1;82000:15;82034:4;82031:1;82024:15;82051:185;82091:1;82108:20;82126:1;82108:20;:::i;:::-;82103:25;;82142:20;82160:1;82142:20;:::i;:::-;82137:25;;82181:1;82171:35;;82186:18;;:::i;:::-;82171:35;82228:1;82225;82221:9;82216:14;;82051:185;;;;:::o;82242:194::-;82282:4;82302:20;82320:1;82302:20;:::i;:::-;82297:25;;82336:20;82354:1;82336:20;:::i;:::-;82331:25;;82380:1;82377;82373:9;82365:17;;82404:1;82398:4;82395:11;82392:37;;;82409:18;;:::i;:::-;82392:37;82242:194;;;;:::o;82442:410::-;82482:7;82505:20;82523:1;82505:20;:::i;:::-;82500:25;;82539:20;82557:1;82539:20;:::i;:::-;82534:25;;82594:1;82591;82587:9;82616:30;82634:11;82616:30;:::i;:::-;82605:41;;82795:1;82786:7;82782:15;82779:1;82776:22;82756:1;82749:9;82729:83;82706:139;;82825:18;;:::i;:::-;82706:139;82490:362;82442:410;;;;:::o;82858:86::-;82893:7;82933:4;82926:5;82922:16;82911:27;;82858:86;;;:::o;82950:188::-;82988:3;83007:18;83023:1;83007:18;:::i;:::-;83002:23;;83039:18;83055:1;83039:18;:::i;:::-;83034:23;;83080:1;83077;83073:9;83066:16;;83103:4;83098:3;83095:13;83092:39;;;83111:18;;:::i;:::-;83092:39;82950:188;;;;:::o

Swarm Source

ipfs://d2605631817ea3435fb3dbc6b4a0a6eb3049b9cde651915ab98da636b5d5a325

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]

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