S Price: $0.477664 (+4.63%)
    /

    Contract

    0xDb58c4DB1a0f45DDA3d2F8e44C3300BB6510c866

    Overview

    S Balance

    Sonic LogoSonic LogoSonic Logo0 S

    S Value

    $0.00

    Token Holdings

    Multichain Info

    No addresses found
    Amount:Between 1-10k
    Reset Filter

    Transaction Hash
    Method
    Block
    Age
    From
    To
    Amount

    There are no matching entries

    > 10 Token Transfers found.

    Parent Transaction Hash Block Age From To Amount
    View All Internal Transactions
    Loading...
    Loading

    Contract Source Code Verified (Exact Match)

    Contract Name:
    Wrapper

    Compiler Version
    v0.8.28+commit.7893614a

    Optimization Enabled:
    Yes with 100000 runs

    Other Settings:
    cancun EvmVersion
    File 1 of 12 : Wrapper.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: GPL-3.0-or-later
    pragma solidity 0.8.28;
    import { ERC4626, ERC20 } from "solady/tokens/ERC4626.sol";
    import { SafeTransferLib } from "solady/utils/SafeTransferLib.sol";
    import { ReentrancyGuard } from "solady/utils/ReentrancyGuard.sol";
    import { AOperator } from "./abstracts/AOperator.sol";
    import { Ownable } from "solady/auth/Ownable.sol";
    import { UtilsLib } from "morpho/libraries/UtilsLib.sol";
    import { Errors } from "./utils/Errors.sol";
    import { ITeller } from "./interfaces/ITeller.sol";
    /// @title Wrapper contract
    /// @notice Contract to wrap a boring vault and auto compound the profits
    /// @author 0xtekgrinder
    contract Wrapper is ERC4626, Ownable, ReentrancyGuard, AOperator {
    using SafeTransferLib for address;
    using UtilsLib for uint256;
    /*//////////////////////////////////////////////////////////////
    EVENTS
    //////////////////////////////////////////////////////////////*/
    /**
    * @notice Event emitted when the vesting period is updated
    */
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 2 of 12 : ERC4626.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    import {ERC20} from "./ERC20.sol";
    import {FixedPointMathLib} from "../utils/FixedPointMathLib.sol";
    import {SafeTransferLib} from "../utils/SafeTransferLib.sol";
    /// @notice Simple ERC4626 tokenized Vault implementation.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/tokens/ERC4626.sol)
    /// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/mixins/ERC4626.sol)
    /// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/extensions/ERC4626
        .sol)
    abstract contract ERC4626 is ERC20 {
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* CONSTANTS */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    /// @dev The default underlying decimals.
    uint8 internal constant _DEFAULT_UNDERLYING_DECIMALS = 18;
    /// @dev The default decimals offset.
    uint8 internal constant _DEFAULT_DECIMALS_OFFSET = 0;
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* CUSTOM ERRORS */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 3 of 12 : SafeTransferLib.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    /// @notice Safe ETH and ERC20 transfer library that gracefully handles missing return values.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/SafeTransferLib.sol)
    /// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol)
    /// @author Permit2 operations from (https://github.com/Uniswap/permit2/blob/main/src/libraries/Permit2Lib.sol)
    ///
    /// @dev Note:
    /// - For ETH transfers, please use `forceSafeTransferETH` for DoS protection.
    library SafeTransferLib {
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* CUSTOM ERRORS */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    /// @dev The ETH transfer has failed.
    error ETHTransferFailed();
    /// @dev The ERC20 `transferFrom` has failed.
    error TransferFromFailed();
    /// @dev The ERC20 `transfer` has failed.
    error TransferFailed();
    /// @dev The ERC20 `approve` has failed.
    error ApproveFailed();
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 4 of 12 : ReentrancyGuard.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    /// @notice Reentrancy guard mixin.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/ReentrancyGuard.sol)
    abstract contract ReentrancyGuard {
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* CUSTOM ERRORS */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    /// @dev Unauthorized reentrant call.
    error Reentrancy();
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* STORAGE */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    /// @dev Equivalent to: `uint72(bytes9(keccak256("_REENTRANCY_GUARD_SLOT")))`.
    /// 9 bytes is large enough to avoid collisions with lower slots,
    /// but not too large to result in excessive bytecode bloat.
    uint256 private constant _REENTRANCY_GUARD_SLOT = 0x929eee149b4bd21268;
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* REENTRANCY GUARD */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 5 of 12 : AOperator.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: GPL-3.0-or-later
    pragma solidity 0.8.28;
    import { Errors } from "../utils/Errors.sol";
    import { Ownable } from "solady/auth/Ownable.sol";
    /// @author 0xtekgrinder
    /// @title AOperator
    /// @notice Abstract contract to allow access only to operator or owner
    abstract contract AOperator is Ownable {
    /*//////////////////////////////////////////////////////////////
    EVENTS
    //////////////////////////////////////////////////////////////*/
    /**
    * @notice Event emitted when a output tokens and/or ratios are updated
    */
    event OperatorUpdated(address newOperator);
    /*//////////////////////////////////////////////////////////////
    MUTABLE VARIABLES
    //////////////////////////////////////////////////////////////*/
    /**
    * @notice operator caller address to allow access only to web3 function
    */
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 6 of 12 : Ownable.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    /// @notice Simple single owner authorization mixin.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)
    ///
    /// @dev Note:
    /// This implementation does NOT auto-initialize the owner to `msg.sender`.
    /// You MUST call the `_initializeOwner` in the constructor / initializer.
    ///
    /// While the ownable portion follows
    /// [EIP-173](https://eips.ethereum.org/EIPS/eip-173) for compatibility,
    /// the nomenclature for the 2-step ownership handover may be unique to this codebase.
    abstract contract Ownable {
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* CUSTOM ERRORS */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    /// @dev The caller is not authorized to call the function.
    error Unauthorized();
    /// @dev The `newOwner` cannot be the zero address.
    error NewOwnerIsZeroAddress();
    /// @dev The `pendingOwner` does not have a valid handover request.
    error NoHandoverRequest();
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 7 of 12 : UtilsLib.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: GPL-2.0-or-later
    pragma solidity ^0.8.0;
    import {ErrorsLib} from "../libraries/ErrorsLib.sol";
    /// @title UtilsLib
    /// @author Morpho Labs
    /// @custom:contact security@morpho.org
    /// @notice Library exposing helpers.
    /// @dev Inspired by https://github.com/morpho-org/morpho-utils.
    library UtilsLib {
    /// @dev Returns true if there is exactly one zero among `x` and `y`.
    function exactlyOneZero(uint256 x, uint256 y) internal pure returns (bool z) {
    assembly {
    z := xor(iszero(x), iszero(y))
    }
    }
    /// @dev Returns the min of `x` and `y`.
    function min(uint256 x, uint256 y) internal pure returns (uint256 z) {
    assembly {
    z := xor(x, mul(xor(x, y), lt(y, x)))
    }
    }
    /// @dev Returns `x` safely cast to uint128.
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 8 of 12 : Errors.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    //SPDX-License-Identifier: MIT
    pragma solidity ^0.8.0;
    library Errors {
    // General errors
    error ZeroValue();
    error ZeroAddress();
    error EmptyArray();
    error DifferentSizeArrays(uint256 length1, uint256 length2);
    // Operator errors
    error NotOperator();
    error NotOperatorOrOwner();
    // Call errors
    error CallFailed(bytes reason);
    // Harvest errors
    error HarvestLoseAssets();
    // Fee errors
    error FeeTooHigh();
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 9 of 12 : ITeller.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //SPDX-License-Identifier: MIT
    pragma solidity ^0.8.0;
    interface ITeller {
    function deposit(address depositAsset, uint256 depositAmount, uint256 minimumMint)
    external
    payable
    returns (uint256 shares);
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 10 of 12 : ERC20.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    /// @notice Simple ERC20 + EIP-2612 implementation.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/tokens/ERC20.sol)
    /// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)
    /// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol)
    ///
    /// @dev Note:
    /// - The ERC20 standard allows minting and transferring to and from the zero address,
    /// minting and transferring zero tokens, as well as self-approvals.
    /// For performance, this implementation WILL NOT revert for such actions.
    /// Please add any checks with overrides if desired.
    /// - The `permit` function uses the ecrecover precompile (0x1).
    ///
    /// If you are overriding:
    /// - NEVER violate the ERC20 invariant:
    /// the total sum of all balances must be equal to `totalSupply()`.
    /// - Check that the overridden function is actually used in the function you want to
    /// change the behavior of. Much of the code has been manually inlined for performance.
    abstract contract ERC20 {
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* CUSTOM ERRORS */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    /// @dev The total supply has overflowed.
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 11 of 12 : FixedPointMathLib.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    /// @notice Arithmetic library with operations for fixed-point numbers.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/FixedPointMathLib.sol)
    /// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/FixedPointMathLib.sol)
    library FixedPointMathLib {
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* CUSTOM ERRORS */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    /// @dev The operation failed, as the output exceeds the maximum value of uint256.
    error ExpOverflow();
    /// @dev The operation failed, as the output exceeds the maximum value of uint256.
    error FactorialOverflow();
    /// @dev The operation failed, due to an overflow.
    error RPowOverflow();
    /// @dev The mantissa is too big to fit.
    error MantissaOverflow();
    /// @dev The operation failed, due to an multiplication overflow.
    error MulWadFailed();
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 12 of 12 : ErrorsLib.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: GPL-2.0-or-later
    pragma solidity ^0.8.0;
    /// @title ErrorsLib
    /// @author Morpho Labs
    /// @custom:contact security@morpho.org
    /// @notice Library exposing error messages.
    library ErrorsLib {
    /// @notice Thrown when the caller is not the owner.
    string internal constant NOT_OWNER = "not owner";
    /// @notice Thrown when the LLTV to enable exceeds the maximum LLTV.
    string internal constant MAX_LLTV_EXCEEDED = "max LLTV exceeded";
    /// @notice Thrown when the fee to set exceeds the maximum fee.
    string internal constant MAX_FEE_EXCEEDED = "max fee exceeded";
    /// @notice Thrown when the value is already set.
    string internal constant ALREADY_SET = "already set";
    /// @notice Thrown when the IRM is not enabled at market creation.
    string internal constant IRM_NOT_ENABLED = "IRM not enabled";
    /// @notice Thrown when the LLTV is not enabled at market creation.
    string internal constant LLTV_NOT_ENABLED = "LLTV not enabled";
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Settings
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    {
    "remappings": [
    "solady/=lib/solady/src/",
    "solmate/=lib/solmate/src/",
    "morpho/=lib/morpho-blue/src/",
    "ds-test/=lib/solmate/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "morpho-blue/=lib/morpho-blue/"
    ],
    "optimizer": {
    "enabled": true,
    "runs": 100000
    },
    "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
    },
    "outputSelection": {
    "*": {
    "*": [
    "evm.bytecode",
    "evm.deployedBytecode",
    "devdoc",
    "userdoc",
    "metadata",
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Contract Security Audit

    Contract ABI

    API
    [{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"},{"internalType":"address","name":"initialOperator","type":"address"},{"internalType":"address","name":"initialFeeRecipient","type":"address"},{"internalType":"uint32","name":"initialPerformanceFee","type":"uint32"},{"internalType":"uint64","name":"initialVestingPeriod","type":"uint64"},{"internalType":"address","name":"definitiveAsset","type":"address"},{"internalType":"address","name":"definitiveUnderlyingAsset","type":"address"},{"internalType":"address","name":"definitiveTeller","type":"address"},{"internalType":"string","name":"definitiveName","type":"string"},{"internalType":"string","name":"definitiveSymbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AllowanceOverflow","type":"error"},{"inputs":[],"name":"AllowanceUnderflow","type":"error"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[{"internalType":"bytes","name":"reason","type":"bytes"}],"name":"CallFailed","type":"error"},{"inputs":[],"name":"DepositMoreThanMax","type":"error"},{"inputs":[],"name":"FeeTooHigh","type":"error"},{"inputs":[],"name":"HarvestLoseAssets","type":"error"},{"inputs":[],"name":"InsufficientAllowance","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidPermit","type":"error"},{"inputs":[],"name":"MintMoreThanMax","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotOperatorOrOwner","type":"error"},{"inputs":[],"name":"Permit2AllowanceIsFixedAtInfinity","type":"error"},{"inputs":[],"name":"PermitExpired","type":"error"},{"inputs":[],"name":"RedeemMoreThanMax","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"TotalSupplyOverflow","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"WithdrawMoreThanMax","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"by","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newFeeRecipient","type":"address"}],"name":"FeeRecipientUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOperator","type":"address"}],"name":"OperatorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"newPerformanceFee","type":"uint32"}],"name":"PerformanceFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newVestingPeriod","type":"uint256"}],"name":"VestingPeriodUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"by","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"convertToAssets","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"convertToShares","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastUpdate","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockedProfit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"maxDeposit","outputs":[{"internalType":"uint256","name":"maxAssets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"maxMint","outputs":[{"internalType":"uint256","name":"maxShares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxRedeem","outputs":[{"internalType":"uint256","name":"maxShares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"maxAssets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"performanceFee","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewDeposit","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewMint","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewRedeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newFeeRecipient","type":"address"}],"name":"setFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"newPerformanceFee","type":"uint32"}],"name":"setPerformanceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"newVestingPeriod","type":"uint64"}],"name":"setVestingPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teller","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"underlyingAsset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingPeriod","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingProfit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]

    60e08060405234610333576129c5803803809161001c8285610553565b83398101610140828203126103335761003482610576565b9161004160208201610576565b9261004e60408301610576565b9060608301519263ffffffff8416809403610333576080810151956001600160401b03871687036103335761008560a08301610576565b9561009260c08401610576565b9361009f60e08501610576565b6101008501519094906001600160401b03811161033357836100c291830161058a565b6101208201519093906001600160401b038111610333576100e3920161058a565b926001600160a01b03168015610544575f80546001600160a01b031916919091178155638b78c6d819546001600160a01b03929092169182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3638b78c6d8195560808790528051906001600160401b0382116104475760015490600182811c9216801561053a575b60208310146104295781601f8493116104cc575b50602090601f8311600114610466575f9261045b575b50508160011b915f199060031b1c1916176001555b8051906001600160401b0382116104475760025490600182811c9216801561043d575b60208310146104295781601f8493116103bb575b50602090601f8311600114610355575f9261034a575b50508160011b915f199060031b1c1916176002555b60a05260c052600580546001600160c01b031916602092831b600160201b600160c01b0316179290921790915560038054610100600160481b0319811660089590951b68ffffffffffffffff001694851790915560405163313ce56760e01b8152909392909190829060049082906001600160a01b03165afa801561033f575f906102fe575b60ff9150169160018060481b03191617176003556040516123e590816105e08239608051818181610fd80152818161170401528181611c5401528181611fb101526122e4015260a051818181611099015261151d015260c051818181610f9901526113c10152f35b506020813d602011610337575b8161031860209383610553565b81010312610333575160ff811681036103335760ff90610296565b5f80fd5b3d915061030b565b6040513d5f823e3d90fd5b015190505f806101fb565b60025f9081528281209350601f198516905b8181106103a3575090846001959493921061038b575b505050811b01600255610210565b01515f1960f88460031b161c191690555f808061037d565b92936020600181928786015181550195019301610367565b60025f529091507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f840160051c8101916020851061041f575b90601f859493920160051c01905b81811061041157506101e5565b5f8155849350600101610404565b90915081906103f6565b634e487b7160e01b5f52602260045260245ffd5b91607f16916101d1565b634e487b7160e01b5f52604160045260245ffd5b015190505f80610199565b60015f9081528281209350601f198516905b8181106104b4575090846001959493921061049c575b505050811b016001556101ae565b01515f1960f88460031b161c191690555f808061048e565b92936020600181928786015181550195019301610478565b60015f529091507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f840160051c81019160208510610530575b90601f859493920160051c01905b8181106105225750610183565b5f8155849350600101610515565b9091508190610507565b91607f169161016f565b63d92e233d60e01b5f5260045ffd5b601f909101601f19168101906001600160401b0382119082101761044757604052565b51906001600160a01b038216820361033357565b81601f82011215610333578051906001600160401b03821161044757604051926105be601f8401601f191660200185610553565b8284526020838301011161033357815f9260208093018386015e830101529056fe60806040526004361015610011575f80fd5b5f3560e01c806301e1d11414611ab957806306fdde0314611a8057806307a2d13a146115f3578063095ea7b3146119f75780630a28a477146119bb57806318160ddd1461197857806323b872dd14611873578063256929621461180c578063313ce567146117ce5780633644e5151461172857806338d52e0f146116ba578063402d267d1461080d57806344b8139614611682578063469048401461162f5780634cdad506146115f357806354d1f13d14611591578063570ca7351461154157806357edab4e146114d35780636e553f651461148257806370a082311461059a578063715018a6146113e55780637158da7c146113775780637313ee5a1461132f5780637399bfe814610e525780637ecebe0014610e025780638778878214610dc15780638c6ea7cd14610d865780638da5cb5b14610d1657806394bf804d14610cc557806395d89b4114610b64578063a40c701f14610a94578063a9059cbb146109e7578063b3ab15fb14610937578063b3d7f6b9146108fb578063b460af94146108a6578063ba0876521461085a578063c046371114610812578063c63d75b61461080d578063c6e6f59214610402578063ce96cb77146107bd578063d505accf146105ea578063d905777e1461059a578063dd62ed3e1461053e578063e74b981b14610446578063ef8b30f714610402578063f04e283e14610397578063f2fde38b1461033c578063f4768256146102885763fee81cf414610234575f80fd5b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102845761026b611b34565b63389a75e1600c525f52602080600c2054604051908152f35b5f80fd5b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102845760043567ffffffffffffffff811690818103610284577fc21cb0f112058f1eb0e3313a577dfc27e6be5b39127591e05245343a422e4915916020916102fa612103565b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff68ffffffffffffffff006003549260081b16911617600355604051908152a1005b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102845761036e611b34565b610376612103565b8060601b1561038a576103889061213a565b005b637448fbae5f526004601cfd5b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610284576103c9611b34565b6103d1612103565b63389a75e1600c52805f526020600c2090815442116103f5575f610388925561213a565b636f5e88185f526004601cfd5b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602061043e600435611eaf565b604051908152f35b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102845761047d611b34565b610485612103565b73ffffffffffffffffffffffffffffffffffffffff811690811561051657600580547fffffffffffffffff0000000000000000000000000000000000000000ffffffff16602092831b77ffffffffffffffffffffffffffffffffffffffff00000000161790556040519182527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc291a1005b7fd92e233d000000000000000000000000000000000000000000000000000000005f5260045ffd5b346102845760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457610575611b34565b61057d611b57565b602052637f5e9f20600c525f5260206034600c2054604051908152f35b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610284576105d1611b34565b6387a211a2600c525f52602080600c2054604051908152f35b346102845760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457610621611b34565b610629611b57565b6084359160643560443560ff8516850361028457610645611cca565b60208151910120908242116107b05773ffffffffffffffffffffffffffffffffffffffff80604051951695169565383775081901600e52855f5260c06020600c20958654957f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8252602082019586528660408301967fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc688528b6060850198468a528c608087019330855260a08820602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9885252528688525260a082015220604e526042602c205f5260ff1660205260a43560405260c43560605260208060805f60015afa93853d51036107a3577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259460209401905585777f5e9f200000000000000000000000000000000000000000176040526034602c2055a3005b63ddafbaef5f526004601cfd5b631a15a3cc5f526004601cfd5b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610284576107f4611b34565b6387a211a2600c525f52602061043e81600c2054611db6565b611b7a565b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602067ffffffffffffffff60035460481c16604051908152f35b346102845761086836611bdc565b906387a211a2600c52815f526020600c20548311610899578261043e91610890602095611db6565b93849133612243565b634656425a5f526004601cfd5b34610284576108b436611bdc565b90916387a211a2600c52815f526108cf6020600c2054611db6565b81116108ee57602092816108e561043e93611de5565b93849233612243565b63936941fc5f526004601cfd5b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602061043e600435611e83565b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102845773ffffffffffffffffffffffffffffffffffffffff610983611b34565b61098b612103565b168015610516576020817fb3b3f5f64ab192e4b5fefde1f51ce9733bbdcf831951543b325aebd49cc27ec4927fffffffffffffffffffffffff00000000000000000000000000000000000000005f5416175f55604051908152a1005b346102845760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457610a1e611b34565b602435906387a211a2600c52335f526020600c208054808411610a875783900390555f526020600c20818154019055602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3602060405160018152f35b63f4d678b85f526004601cfd5b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102845760043563ffffffff811680910361028457610adc612103565b6103e88111610b3c576020817fe72cfeafe574dcbeecf132b9545aae2c2a4440843ccbd4a6f61feb0a1439f5d2927fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000006005541617600555604051908152a1005b7fcd4e6167000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610284576040515f6002548060011c90600181168015610cbb575b602083108114610c8e57828552908115610c4c5750600114610bee575b610bea83610bd681850382611c89565b604051918291602083526020830190611af1565b0390f35b60025f9081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b808210610c3257509091508101602001610bd6610bc6565b919260018160209254838588010152019101909291610c1a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b84019091019150610bd69050610bc6565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691610ba9565b346102845760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602060043561043e610d04611b57565b91610d0e81611e83565b809333611fac565b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102845760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610284576020600454604051908152f35b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602063ffffffff60055416604051908152f35b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457610e39611b34565b6338377508600c525f52602080600c2054604051908152f35b346102845760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457610e89611b34565b6024359067ffffffffffffffff821161028457366023830112156102845781600401359167ffffffffffffffff8311610284573660248483010111610284573068929eee149b4bd212685414611322573068929eee149b4bd212685573ffffffffffffffffffffffffffffffffffffffff5f5416331415806112e1575b6112b9575f916024838093610f19611c4e565b9680604051948593018337810182815203925af13d156112b1573d9067ffffffffffffffff82116112845760405191610f7a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184611c89565b82523d5f602084013e5b156112425750610f92611c4e565b1061121a577f0000000000000000000000000000000000000000000000000000000000000000610fc230826121bb565b6005549063ffffffff8216806111d0575b5090507f0000000000000000000000000000000000000000000000000000000000000000601452806034526f095ea7b30000000000000000000000005f5260205f6044601082865af18060015f511416156111b2575b505f60345273ffffffffffffffffffffffffffffffffffffffff604051927f0efe6a8b00000000000000000000000000000000000000000000000000000000845216600483015260248201525f60448201526020816064815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af19081156111a7575f91611175575b50806110de575b3868929eee149b4bd2126855005b6110e6611e11565b908101809111611148576fffffffffffffffffffffffffffffffff166004556003547fffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffff6cffffffff0000000000000000004260481b16911617600355806110d0565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b90506020813d60201161119f575b8161119060209383611c89565b810103126102845751816110c9565b3d9150611183565b6040513d5f823e3d90fd5b3d833b151710156111c35782611029565b633e3f8f735f526004601cfd5b8082029082820414821517156111485761271090048082039182116111485773ffffffffffffffffffffffffffffffffffffffff611213929360201c16846121e9565b8083610fd3565b7fdd814bfc000000000000000000000000000000000000000000000000000000005f5260045ffd5b611280906040519182917fa5fa8d2b000000000000000000000000000000000000000000000000000000008352602060048401526024830190611af1565b0390fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b606090610f84565b7ff20fc9eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b5073ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275416331415610f06565b63ab143c065f526004601cfd5b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602067ffffffffffffffff60035460081c16604051908152f35b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457611416612103565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a35f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755005b346102845760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602060043561043e6114c1611b57565b6114ca83611eaf565b92839133611fac565b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102845763389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2005b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602061043e600435611db6565b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602073ffffffffffffffffffffffffffffffffffffffff600554821c16604051908152f35b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602061043e611e11565b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602060a0611762611cca565b828151910120604051907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8252838201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015220604051908152f35b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602060ff60035416604051908152f35b5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102845763389a75e1600c52335f526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a2005b346102845760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610284576118aa611b34565b6118b2611b57565b604435908260601b33602052637f5e9f208117600c526034600c20908154918219611954575b506387a211a2915017600c526020600c208054808411610a875783900390555f526020600c2081815401905560205273ffffffffffffffffffffffffffffffffffffffff600c5160601c91167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3602060405160018152f35b82851161196b57846387a211a293039055856118d8565b6313be252b5f526004601cfd5b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102845760206805345cdf77eb68f44c54604051908152f35b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602061043e600435611de5565b346102845760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457611a2e611b34565b60243590602052637f5e9f20600c52335f52806034600c20555f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa3602060405160018152f35b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457610bea610bd6611cca565b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602061043e611c4e565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361028457565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361028457565b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457611bb1611b34565b5060206040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8152f35b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6060910112610284576004359060243573ffffffffffffffffffffffffffffffffffffffff81168103610284579060443573ffffffffffffffffffffffffffffffffffffffff811681036102845790565b611c78307f00000000000000000000000000000000000000000000000000000000000000006121bb565b611c80611e11565b80820391110290565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761128457604052565b604051905f6001548060011c9160018216918215611dac575b602084108314610c8e578386528592908115611d6f5750600114611d10575b611d0e92500383611c89565b565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b818310611d53575050906020611d0e92820101611d02565b6020919350806001915483858901015201910190918492611d3b565b60209250611d0e9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b820101611d02565b92607f1692611ce3565b611dbe611c4e565b906001820180921161114857611de29160016805345cdf77eb68f44c540191611ed7565b90565b6805345cdf77eb68f44c54906001820180921161114857611de2916001611e0a611c4e565b0191611f89565b60035467ffffffffffffffff808260481c169160081c1667ffffffffffffffff81830116421015611e7d57600454918115611e50574203820204900390565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50505f90565b611e8b611c4e565b906001820180921161114857611de29160016805345cdf77eb68f44c540191611f89565b6805345cdf77eb68f44c54906001820180921161114857611de2916001611ed4611c4e565b01915b81810292918115828504821417830215611ef2575050900490565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8492840985811086019003920990825f0383169281811115611f7c5783900480600302600218808202600203028082026002030280820260020302808202600203028082026002030280910260020302936001848483030494805f0304019211900302170290565b63ae47f7025f526004601cfd5b929190611f97828286611ed7565b9309611f9f57565b90600101908115611f7c57565b9290917f00000000000000000000000000000000000000000000000000000000000000006040519082606052306040528560601b602c526f23b872dd000000000000000000000000600c5260205f6064601c82855af1908160015f511416156120e5575b50505f6060526040526805345cdf77eb68f44c548281019081106120d8576805345cdf77eb68f44c556387a211a2600c52825f526020600c2082815401905581602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35f5260205273ffffffffffffffffffffffffffffffffffffffff169073ffffffffffffffffffffffffffffffffffffffff167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d760405fa3565b63e5cfe9575f526004601cfd5b3b153d1710156120f6575f80612010565b637939f4245f526004601cfd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754330361212d57565b6382b429005f526004601cfd5b73ffffffffffffffffffffffffffffffffffffffff16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a37fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755565b602460106020939284936014526f70a082310000000000000000000000005f525afa601f3d11166020510290565b91906014526034526fa9059cbb0000000000000000000000005f5260205f6044601082855af1908160015f51141615612225575b50505f603452565b3b153d171015612236575f8061221d565b6390b8ec185f526004601cfd5b9293909373ffffffffffffffffffffffffffffffffffffffff83168073ffffffffffffffffffffffffffffffffffffffff861603612378575b6387a211a2600c52835f526020600c2090815491828511610a8757845f93039055836805345cdf77eb68f44c54036805345cdf77eb68f44c558382527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a361230881867f00000000000000000000000000000000000000000000000000000000000000006121e9565b5f5260205273ffffffffffffffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff169073ffffffffffffffffffffffffffffffffffffffff167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db60405fa4565b84602052637f5e9f20600c52835f526034600c208054801961239c575b505061227c565b80851161196b5784900390555f8061239556fea26469706673582212204f93d91ed8ad11c03afb98f9e8afaabc71f23d7de9c30a846b95c00d9b07f6fb64736f6c634300081c0033000000000000000000000000b1cf5c852b908a85624878452a3f3fdb6ce94f05000000000000000000000000c04fb43668c8c4cfb6e18dccd0085ed98b1d4008000000000000000000000000b1cf5c852b908a85624878452a3f3fdb6ce94f0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000093a80000000000000000000000000d0851030c94433c261b405fecbf1dec5e15948d0000000000000000000000000bb30e76d9bb2cc9631f7fc5eb8e87b5aff32bfbd000000000000000000000000825254012306bb410b550631895fe58ddce1f4a9000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000010577261707065642073746b73634254430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097773746b73634254430000000000000000000000000000000000000000000000

    Deployed Bytecode

    0x60806040526004361015610011575f80fd5b5f3560e01c806301e1d11414611ab957806306fdde0314611a8057806307a2d13a146115f3578063095ea7b3146119f75780630a28a477146119bb57806318160ddd1461197857806323b872dd14611873578063256929621461180c578063313ce567146117ce5780633644e5151461172857806338d52e0f146116ba578063402d267d1461080d57806344b8139614611682578063469048401461162f5780634cdad506146115f357806354d1f13d14611591578063570ca7351461154157806357edab4e146114d35780636e553f651461148257806370a082311461059a578063715018a6146113e55780637158da7c146113775780637313ee5a1461132f5780637399bfe814610e525780637ecebe0014610e025780638778878214610dc15780638c6ea7cd14610d865780638da5cb5b14610d1657806394bf804d14610cc557806395d89b4114610b64578063a40c701f14610a94578063a9059cbb146109e7578063b3ab15fb14610937578063b3d7f6b9146108fb578063b460af94146108a6578063ba0876521461085a578063c046371114610812578063c63d75b61461080d578063c6e6f59214610402578063ce96cb77146107bd578063d505accf146105ea578063d905777e1461059a578063dd62ed3e1461053e578063e74b981b14610446578063ef8b30f714610402578063f04e283e14610397578063f2fde38b1461033c578063f4768256146102885763fee81cf414610234575f80fd5b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102845761026b611b34565b63389a75e1600c525f52602080600c2054604051908152f35b5f80fd5b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102845760043567ffffffffffffffff811690818103610284577fc21cb0f112058f1eb0e3313a577dfc27e6be5b39127591e05245343a422e4915916020916102fa612103565b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff68ffffffffffffffff006003549260081b16911617600355604051908152a1005b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102845761036e611b34565b610376612103565b8060601b1561038a576103889061213a565b005b637448fbae5f526004601cfd5b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610284576103c9611b34565b6103d1612103565b63389a75e1600c52805f526020600c2090815442116103f5575f610388925561213a565b636f5e88185f526004601cfd5b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602061043e600435611eaf565b604051908152f35b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102845761047d611b34565b610485612103565b73ffffffffffffffffffffffffffffffffffffffff811690811561051657600580547fffffffffffffffff0000000000000000000000000000000000000000ffffffff16602092831b77ffffffffffffffffffffffffffffffffffffffff00000000161790556040519182527f7a7b5a0a132f9e0581eb8527f66eae9ee89c2a3e79d4ac7e41a1f1f4d48a7fc291a1005b7fd92e233d000000000000000000000000000000000000000000000000000000005f5260045ffd5b346102845760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457610575611b34565b61057d611b57565b602052637f5e9f20600c525f5260206034600c2054604051908152f35b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610284576105d1611b34565b6387a211a2600c525f52602080600c2054604051908152f35b346102845760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457610621611b34565b610629611b57565b6084359160643560443560ff8516850361028457610645611cca565b60208151910120908242116107b05773ffffffffffffffffffffffffffffffffffffffff80604051951695169565383775081901600e52855f5260c06020600c20958654957f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8252602082019586528660408301967fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc688528b6060850198468a528c608087019330855260a08820602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9885252528688525260a082015220604e526042602c205f5260ff1660205260a43560405260c43560605260208060805f60015afa93853d51036107a3577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259460209401905585777f5e9f200000000000000000000000000000000000000000176040526034602c2055a3005b63ddafbaef5f526004601cfd5b631a15a3cc5f526004601cfd5b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610284576107f4611b34565b6387a211a2600c525f52602061043e81600c2054611db6565b611b7a565b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602067ffffffffffffffff60035460481c16604051908152f35b346102845761086836611bdc565b906387a211a2600c52815f526020600c20548311610899578261043e91610890602095611db6565b93849133612243565b634656425a5f526004601cfd5b34610284576108b436611bdc565b90916387a211a2600c52815f526108cf6020600c2054611db6565b81116108ee57602092816108e561043e93611de5565b93849233612243565b63936941fc5f526004601cfd5b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602061043e600435611e83565b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102845773ffffffffffffffffffffffffffffffffffffffff610983611b34565b61098b612103565b168015610516576020817fb3b3f5f64ab192e4b5fefde1f51ce9733bbdcf831951543b325aebd49cc27ec4927fffffffffffffffffffffffff00000000000000000000000000000000000000005f5416175f55604051908152a1005b346102845760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457610a1e611b34565b602435906387a211a2600c52335f526020600c208054808411610a875783900390555f526020600c20818154019055602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3602060405160018152f35b63f4d678b85f526004601cfd5b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102845760043563ffffffff811680910361028457610adc612103565b6103e88111610b3c576020817fe72cfeafe574dcbeecf132b9545aae2c2a4440843ccbd4a6f61feb0a1439f5d2927fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000006005541617600555604051908152a1005b7fcd4e6167000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610284576040515f6002548060011c90600181168015610cbb575b602083108114610c8e57828552908115610c4c5750600114610bee575b610bea83610bd681850382611c89565b604051918291602083526020830190611af1565b0390f35b60025f9081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b808210610c3257509091508101602001610bd6610bc6565b919260018160209254838588010152019101909291610c1a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b84019091019150610bd69050610bc6565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691610ba9565b346102845760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602060043561043e610d04611b57565b91610d0e81611e83565b809333611fac565b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102845760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610284576020600454604051908152f35b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602063ffffffff60055416604051908152f35b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457610e39611b34565b6338377508600c525f52602080600c2054604051908152f35b346102845760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457610e89611b34565b6024359067ffffffffffffffff821161028457366023830112156102845781600401359167ffffffffffffffff8311610284573660248483010111610284573068929eee149b4bd212685414611322573068929eee149b4bd212685573ffffffffffffffffffffffffffffffffffffffff5f5416331415806112e1575b6112b9575f916024838093610f19611c4e565b9680604051948593018337810182815203925af13d156112b1573d9067ffffffffffffffff82116112845760405191610f7a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184611c89565b82523d5f602084013e5b156112425750610f92611c4e565b1061121a577f000000000000000000000000bb30e76d9bb2cc9631f7fc5eb8e87b5aff32bfbd610fc230826121bb565b6005549063ffffffff8216806111d0575b5090507f000000000000000000000000d0851030c94433c261b405fecbf1dec5e15948d0601452806034526f095ea7b30000000000000000000000005f5260205f6044601082865af18060015f511416156111b2575b505f60345273ffffffffffffffffffffffffffffffffffffffff604051927f0efe6a8b00000000000000000000000000000000000000000000000000000000845216600483015260248201525f60448201526020816064815f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000825254012306bb410b550631895fe58ddce1f4a9165af19081156111a7575f91611175575b50806110de575b3868929eee149b4bd2126855005b6110e6611e11565b908101809111611148576fffffffffffffffffffffffffffffffff166004556003547fffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffff6cffffffff0000000000000000004260481b16911617600355806110d0565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b90506020813d60201161119f575b8161119060209383611c89565b810103126102845751816110c9565b3d9150611183565b6040513d5f823e3d90fd5b3d833b151710156111c35782611029565b633e3f8f735f526004601cfd5b8082029082820414821517156111485761271090048082039182116111485773ffffffffffffffffffffffffffffffffffffffff611213929360201c16846121e9565b8083610fd3565b7fdd814bfc000000000000000000000000000000000000000000000000000000005f5260045ffd5b611280906040519182917fa5fa8d2b000000000000000000000000000000000000000000000000000000008352602060048401526024830190611af1565b0390fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b606090610f84565b7ff20fc9eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b5073ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275416331415610f06565b63ab143c065f526004601cfd5b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602067ffffffffffffffff60035460081c16604051908152f35b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602060405173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000bb30e76d9bb2cc9631f7fc5eb8e87b5aff32bfbd168152f35b5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457611416612103565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a35f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755005b346102845760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602060043561043e6114c1611b57565b6114ca83611eaf565b92839133611fac565b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602060405173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000825254012306bb410b550631895fe58ddce1f4a9168152f35b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102845763389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2005b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602061043e600435611db6565b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602073ffffffffffffffffffffffffffffffffffffffff600554821c16604051908152f35b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602061043e611e11565b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602060405173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000d0851030c94433c261b405fecbf1dec5e15948d0168152f35b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602060a0611762611cca565b828151910120604051907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8252838201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015220604051908152f35b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602060ff60035416604051908152f35b5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102845763389a75e1600c52335f526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a2005b346102845760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610284576118aa611b34565b6118b2611b57565b604435908260601b33602052637f5e9f208117600c526034600c20908154918219611954575b506387a211a2915017600c526020600c208054808411610a875783900390555f526020600c2081815401905560205273ffffffffffffffffffffffffffffffffffffffff600c5160601c91167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3602060405160018152f35b82851161196b57846387a211a293039055856118d8565b6313be252b5f526004601cfd5b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102845760206805345cdf77eb68f44c54604051908152f35b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602061043e600435611de5565b346102845760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457611a2e611b34565b60243590602052637f5e9f20600c52335f52806034600c20555f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa3602060405160018152f35b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457610bea610bd6611cca565b34610284575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457602061043e611c4e565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361028457565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361028457565b346102845760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028457611bb1611b34565b5060206040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8152f35b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6060910112610284576004359060243573ffffffffffffffffffffffffffffffffffffffff81168103610284579060443573ffffffffffffffffffffffffffffffffffffffff811681036102845790565b611c78307f000000000000000000000000d0851030c94433c261b405fecbf1dec5e15948d06121bb565b611c80611e11565b80820391110290565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761128457604052565b604051905f6001548060011c9160018216918215611dac575b602084108314610c8e578386528592908115611d6f5750600114611d10575b611d0e92500383611c89565b565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b818310611d53575050906020611d0e92820101611d02565b6020919350806001915483858901015201910190918492611d3b565b60209250611d0e9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b820101611d02565b92607f1692611ce3565b611dbe611c4e565b906001820180921161114857611de29160016805345cdf77eb68f44c540191611ed7565b90565b6805345cdf77eb68f44c54906001820180921161114857611de2916001611e0a611c4e565b0191611f89565b60035467ffffffffffffffff808260481c169160081c1667ffffffffffffffff81830116421015611e7d57600454918115611e50574203820204900390565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50505f90565b611e8b611c4e565b906001820180921161114857611de29160016805345cdf77eb68f44c540191611f89565b6805345cdf77eb68f44c54906001820180921161114857611de2916001611ed4611c4e565b01915b81810292918115828504821417830215611ef2575050900490565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8492840985811086019003920990825f0383169281811115611f7c5783900480600302600218808202600203028082026002030280820260020302808202600203028082026002030280910260020302936001848483030494805f0304019211900302170290565b63ae47f7025f526004601cfd5b929190611f97828286611ed7565b9309611f9f57565b90600101908115611f7c57565b9290917f000000000000000000000000d0851030c94433c261b405fecbf1dec5e15948d06040519082606052306040528560601b602c526f23b872dd000000000000000000000000600c5260205f6064601c82855af1908160015f511416156120e5575b50505f6060526040526805345cdf77eb68f44c548281019081106120d8576805345cdf77eb68f44c556387a211a2600c52825f526020600c2082815401905581602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35f5260205273ffffffffffffffffffffffffffffffffffffffff169073ffffffffffffffffffffffffffffffffffffffff167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d760405fa3565b63e5cfe9575f526004601cfd5b3b153d1710156120f6575f80612010565b637939f4245f526004601cfd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754330361212d57565b6382b429005f526004601cfd5b73ffffffffffffffffffffffffffffffffffffffff16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a37fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755565b602460106020939284936014526f70a082310000000000000000000000005f525afa601f3d11166020510290565b91906014526034526fa9059cbb0000000000000000000000005f5260205f6044601082855af1908160015f51141615612225575b50505f603452565b3b153d171015612236575f8061221d565b6390b8ec185f526004601cfd5b9293909373ffffffffffffffffffffffffffffffffffffffff83168073ffffffffffffffffffffffffffffffffffffffff861603612378575b6387a211a2600c52835f526020600c2090815491828511610a8757845f93039055836805345cdf77eb68f44c54036805345cdf77eb68f44c558382527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a361230881867f000000000000000000000000d0851030c94433c261b405fecbf1dec5e15948d06121e9565b5f5260205273ffffffffffffffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff169073ffffffffffffffffffffffffffffffffffffffff167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db60405fa4565b84602052637f5e9f20600c52835f526034600c208054801961239c575b505061227c565b80851161196b5784900390555f8061239556fea26469706673582212204f93d91ed8ad11c03afb98f9e8afaabc71f23d7de9c30a846b95c00d9b07f6fb64736f6c634300081c0033

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

    000000000000000000000000b1cf5c852b908a85624878452a3f3fdb6ce94f05000000000000000000000000c04fb43668c8c4cfb6e18dccd0085ed98b1d4008000000000000000000000000b1cf5c852b908a85624878452a3f3fdb6ce94f0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000093a80000000000000000000000000d0851030c94433c261b405fecbf1dec5e15948d0000000000000000000000000bb30e76d9bb2cc9631f7fc5eb8e87b5aff32bfbd000000000000000000000000825254012306bb410b550631895fe58ddce1f4a9000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000010577261707065642073746b73634254430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097773746b73634254430000000000000000000000000000000000000000000000

    -----Decoded View---------------
    Arg [0] : initialOwner (address): 0xb1Cf5c852b908A85624878452A3F3fDb6cE94f05
    Arg [1] : initialOperator (address): 0xC04FB43668C8C4cFb6e18dCCd0085ED98B1d4008
    Arg [2] : initialFeeRecipient (address): 0xb1Cf5c852b908A85624878452A3F3fDb6cE94f05
    Arg [3] : initialPerformanceFee (uint32): 0
    Arg [4] : initialVestingPeriod (uint64): 604800
    Arg [5] : definitiveAsset (address): 0xD0851030C94433C261B405fEcbf1DEC5E15948d0
    Arg [6] : definitiveUnderlyingAsset (address): 0xBb30e76d9Bb2CC9631F7fC5Eb8e87B5Aff32bFbd
    Arg [7] : definitiveTeller (address): 0x825254012306bB410b550631895fe58DdCE1f4a9
    Arg [8] : definitiveName (string): Wrapped stkscBTC
    Arg [9] : definitiveSymbol (string): wstkscBTC

    -----Encoded View---------------
    14 Constructor Arguments found :
    Arg [0] : 000000000000000000000000b1cf5c852b908a85624878452a3f3fdb6ce94f05
    Arg [1] : 000000000000000000000000c04fb43668c8c4cfb6e18dccd0085ed98b1d4008
    Arg [2] : 000000000000000000000000b1cf5c852b908a85624878452a3f3fdb6ce94f05
    Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
    Arg [4] : 0000000000000000000000000000000000000000000000000000000000093a80
    Arg [5] : 000000000000000000000000d0851030c94433c261b405fecbf1dec5e15948d0
    Arg [6] : 000000000000000000000000bb30e76d9bb2cc9631f7fc5eb8e87b5aff32bfbd
    Arg [7] : 000000000000000000000000825254012306bb410b550631895fe58ddce1f4a9
    Arg [8] : 0000000000000000000000000000000000000000000000000000000000000140
    Arg [9] : 0000000000000000000000000000000000000000000000000000000000000180
    Arg [10] : 0000000000000000000000000000000000000000000000000000000000000010
    Arg [11] : 577261707065642073746b736342544300000000000000000000000000000000
    Arg [12] : 0000000000000000000000000000000000000000000000000000000000000009
    Arg [13] : 7773746b73634254430000000000000000000000000000000000000000000000


    Block Age Transaction Gas Used Reward
    view all blocks ##produced##

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

    Validator Index Block Age Amount
    View All Withdrawals

    Transaction Hash Block Age Value Eth2 PubKey Valid
    View All Deposits

    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.